今天在论坛上看到的一段代码 ,刚开始没明白结果为什么是显示5,然后就自己调试了一翻,
想看下到底是怎么回事。呵呵,终于知道了结果,对指针,数组,地址又多学习到了一点点
(&a+1)在这个地方表示的是增加一整个数组所占用的内存大小,即:
&a表示数组a[5]的首地址,那么(&a+1)就表示a[5]数组最后一个元素的地址之后的一个地址
而ptr = &a+1;所以*(ptr-1)就是a[5]数组的最后一个元素。
本文通过一个具体的C语言代码示例解释了指针、数组及地址的概念。详细分析了(&a+1)表达式的含义,并解释了如何通过指针操作访问数组中的元素。
今天在论坛上看到的一段代码 ,刚开始没明白结果为什么是显示5,然后就自己调试了一翻,
想看下到底是怎么回事。呵呵,终于知道了结果,对指针,数组,地址又多学习到了一点点
(&a+1)在这个地方表示的是增加一整个数组所占用的内存大小,即:
&a表示数组a[5]的首地址,那么(&a+1)就表示a[5]数组最后一个元素的地址之后的一个地址
而ptr = &a+1;所以*(ptr-1)就是a[5]数组的最后一个元素。

被折叠的 条评论
为什么被折叠?