您的位置:首页 > 教育 > 培训 > 【时时三省】(C语言基础)指针进阶 例题3

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

2024/10/5 21:21:41 来源:https://blog.csdn.net/2301_81226734/article/details/141970877  浏览:    关键词:【时时三省】(C语言基础)指针进阶 例题3

山不在高,有仙则名。水不在深,有龙则灵。

                         ----CSDN 时时三省

例题:

b42ab1789d074e84b8d1bbe0a3725ec9.jpg

这个arr里面是放了[a b c d e f \0] 

第一个arr 这个sizeof是计算这个数组的大小 这个里面加上\0一共是7个元素 所以打印7

第二个arr+0 这个指数组名加0 数组名没有单独放在sizeof内部 所以它是首元素地址 首元素地址加0还是首元素地址 所以这个地方打印4或者8

第三个*arr 没有单独放在sizeof内部 也没有取地址 所以他表示首元素地址 解引用 就表示第一个元素 所以就是打印1

第四个arr[1] 这个[1]表示数组的第二个元素 它的大小就是一个字节 所以打印1

第五个&arr arr是个数组名 数组名进行了取地址 取出的是整个数组的元素 他是个地址 所以打印4或者8

第六个&arr+1 它原本&arr是整个数组 是7个元素 但是+1就跳过了整个数组 跳过了七个元素 这个时候它还是个地址 所以就打印4或者8

第七个&arr[0]+1  arr[0]是我们这个数组的第一个元素 &取出第一个元素的地址 第一个元素地址取出来+1 就是第二个元素的地址 第二个元素地址还是4或者8 就是打印4或者8

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com