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

【时时三省】(C语言基础)指针进阶 例题7

山不在高,有仙则名。水不在深,有龙则灵。                           ----CSDN 时时三省

二维数组

3be228a8258741368393090d8fd72677.jpg

 

 第一个a 因为它有12个元素 每个元素占4个字节 所以就打印48

第二个a[0][0] 表示是第一行第一个元素  所以它算的就是第一行第一个元素所占的大小 所以就打印4

第三个a[0]它就可以理解为 第一行的数组名 所以它就是计算的第一行的大小 所以它就是打印16

第四个a[0]+1   a[0]作为数组名并没有单独放在sizeof内部 也没有取地址 所以a[0]表示的是第一行第一个元素的地址 a[0]+1就是第一行第二个元素的地址

第五个*(a[0]+1)  这个是解引用的第一行第二个元素的地址 因为它是int类型 所以打印4个字节

第六个a+1 a代表首元素地址 对于二维数组来说 首元素就是代表第一行 +1就表示第二行的地址 所以他就打印4

第七个*(a+1) a+1代表第二行的地址 然后解引用 第二行有4个元素 每个元素4个字节 所以它就是打印16

第八个&a[0]+1 &a取出来的是整个数组的地址 &a[0]取出来的是第一行的地址  +1就表示的第二行的地址 所以就是打印4

第九个*(&a[0]+1) 这个表示第二行的地址 解引用以后计算的就是第二行的所有元素的大小 就是打印16

第十个*a a表示首元素地址 首元素就是第一行的地址 第一行的地址解引用以后就是打印16

第十一a[3] a[3]其实是第四行的数组名(如果有的话)所以其实不存在 也能通过类型计算大小的 所以它就打印16 

 


http://www.mrgr.cn/news/27154.html

相关文章:

  • 在线音乐系统网站源码
  • 《深入理解 C++移动语义与右值引用:性能提升与潜在陷阱》
  • 汽车租赁系统1.0版本
  • 【四】k8s部署 TDengine集群
  • TCP套接字【网络】
  • 2-94 基于matlab的最佳维纳滤波器的盲解卷积算法
  • 《论网络安全体系设计》写作框架,软考高级系统架构设计师
  • xmake vscode+clangd实现c/c++程序更精确跳转、补全
  • 小琳AI课堂:o1系列模型
  • Python 中的高并发 I/O
  • 什么是幂等
  • Coggle数据科学 | 科大讯飞AI大赛:人岗匹配挑战赛 赛季3
  • Java多线程编程-基础篇
  • 利士策分享,细品礼仪之美:在日常中优雅相处的艺术
  • 【FATFS】FATFS简介及下载
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • ET 框架问题集合(请收藏,不定时更新)
  • 【例题】lanqiao1331 二进制中 1 的个数
  • MySQL聚合统计
  • Nginx:Web架构中的全能战士