当前位置: 首页 > news >正文

深入理解指针

例题1

int main()
{
	int a[5][5];
	int(*p)[4];
	p = a;
	printf("%p, %d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);
	return 0;
}

在这里插入图片描述
由图知第二个打印的是-4
因为%p是直接将内存中的值当作地址打印
而-4在内存中存放的是其二进制的补码,打印以16进制形式打印
10000000000000000000000000000100 -4的原码
111111111111111111111111111111111011 -4的反码
111111111111111111111111111111111100 -4的补码
1111 1111 1111 1111 1111 1111 1111 1100
F F F F F F F C
所以第一个打印FFFFFFFC
在这里插入图片描述

例题2

int main()
{
	char* a[] = { "word", "at", "alibaba" };
	char** pa = a;
	pa++;
	printf("%s\n", *pa);//"at"
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例题3

int main()
{
	char* c[] = { "ENTER","NEW","POINT","FIRST" };
	char** cp[] = { c + 3,c + 2,c + 1,c };
	char*** cpp = cp;
	printf("%s\n", **++cpp);
	printf("%s\n", *-- * ++cpp + 3);
	printf("%s\n", *cpp[-2] + 3);
	printf("%s\n", cpp[-1][-1] + 1);
	return 0;
}

先画图,根据此图去理解打印的内容。
在这里插入图片描述
对于第一个打印
在这里插入图片描述

对于第二个打印,不确定优先可以看看优先级
在这里插入图片描述
在这里插入图片描述
对于第三个打印
在这里插入图片描述
对于第四个打印
在这里插入图片描述
运行输出
在这里插入图片描述
请添加图片描述

相关文章:

  • Xshell连接虚拟机ubuntu,报错(port 22): Connection failed.
  • Oracle RAC数据库单节点轮流重启
  • 解析京东商品评论API接口 ——json数据示例参考
  • 第四篇:开源生态与蒸馏模型的价值
  • LLaMA 3.1 模型在DAMODEL平台的部署与实战:打造智能聊天机器人
  • Java IO 流核心技术全解析
  • 第二章 代码生成
  • 【深度学习】预训练和微调概述
  • 基于Spring Boot的图书管理系统设计与实现(LW+源码+讲解)
  • Unity教程(二十一)技能系统 基础部分
  • 基于vue和微信小程序的校园自助打印系统(springboot论文源码调试讲解)
  • ElasticSearch+Kibana通过Docker部署到Linux服务器中
  • OneNote手机/平板“更多笔记本”中有许多已经删掉或改名的,如何删除
  • 23种设计模式 - 观察者模式
  • Transformer解析——(一)概述
  • Nginx 安装及配置教程(Windows)【安装】
  • 前端一些可视化图表工具
  • cs106x-lecture12(Autumn 2017)-SPL实现
  • Android14(13)添加墨水屏手写API
  • 一款开源可独立部署的知识管理工具!!
  • vs做网站开发吗/站长统计app下载大全
  • 遵义网站建设找工作/网络游戏推广
  • 誓做中国最大钓鱼网站/贵州二级站seo整站优化排名
  • 黄州做网站的/seovip培训
  • 高权重网站发外链/2345网址导航
  • 如何做内部优惠券网站/掌门一对一辅导官网