黑马程序员技术交流社区

标题: 不水贴,分享个arr +1, arr[0]+1, &arr+1 等等的指针心得 [打印本页]

作者: TTsu    时间: 2015-9-5 23:19
标题: 不水贴,分享个arr +1, arr[0]+1, &arr+1 等等的指针心得
本帖最后由 TTsu 于 2015-9-6 02:07 编辑

是不是感觉这些+1 +1的对学习指针来有所困扰,我下面的方法让你告别死记硬背.
首先假设一个int类型一维数组arr[4], arr的地址是0x00;  那么arr +1是多少呢?
arr是这个数组首元素地址==&arr[0], 心得就是 无论&什么什么+1 就是&符号后面的内容占据的地址单元数+指针起始位置 arr[0]占据4地址单元
所以arr +1 == &arr[0]+1 =4+0x00=0x04; 而 &arr+1 = 0x10; 这里&后面arr是个数组名就可以当成是arr这整个数组占据的地址单元数+地址.它占据16个地址单元 &arr+ 1=16+ 0x00= 0x10.一维数组中各元素也是如此,arr[0]+1等于 arr[1]同样适用,arr[0]是int 类型在内存中占用四个字节,所以+1也是跳到第5个字节就是arr[1]的字节那儿,所以就是arr[1]了
二维数组指针也是一样的,心得就是这样,但愿arr+1 &arr[0]+1等等这些指针到底变动多少不会在困扰你引子源自宿舍大神0826iossunzhen的个人心得,我再次基础上稍微扩展补充


作者: a124113798    时间: 2015-9-5 23:21
赞起。。。。。。
作者: 同舟ing    时间: 2015-9-5 23:21
我靠,见解就是独特,我怎么就没想到呢??!
作者: 企业部-Mr.王    时间: 2015-9-5 23:22
赞起....
作者: 木子青    时间: 2015-9-5 23:23
哈哈,我和你现在水平差不多,不过你理解的更深刻一点
作者: 郭占岭    时间: 2015-9-5 23:26
学的这么到位
作者: TTsu    时间: 2015-9-5 23:27
木子青 发表于 2015-9-5 23:23
哈哈,我和你现在水平差不多,不过你理解的更深刻一点

你肯定比我NB多了,我太多知识都在费劲
作者: pyy061    时间: 2015-9-5 23:29
果然大神~
作者: 翟宇浩    时间: 2015-9-5 23:57
分析的很好啊
作者: 申宝瑞    时间: 2015-9-6 00:08
恩恩  分析的很好
作者: 申宝瑞    时间: 2015-9-6 00:09
嘿哟   不错嘛
作者: Joker_999    时间: 2015-9-6 17:28
分析的很详细,赞一个
作者: itheima-zx    时间: 2015-9-7 22:10
6的不行,。学习了。

作者: 驴小叔    时间: 2015-9-7 22:11
挺你一个~~~
作者: ------    时间: 2015-9-7 22:16
果然是大神,厉害厉害,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2