A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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的个人心得,我再次基础上稍微扩展补充

评分

参与人数 1黑马币 +6 收起 理由
itheima-zx + 6 赞一个!

查看全部评分

15 个回复

正序浏览
果然是大神,厉害厉害,
回复 使用道具 举报
挺你一个~~~
回复 使用道具 举报
6的不行,。学习了。
回复 使用道具 举报
学习学习!
回复 使用道具 举报
分析的很详细,赞一个
回复 使用道具 举报
嘿哟   不错嘛
回复 使用道具 举报
恩恩  分析的很好
回复 使用道具 举报
分析的很好啊
回复 使用道具 举报
pyy061 来自手机 中级黑马 2015-9-5 23:29:32
8#
果然大神~
回复 使用道具 举报
TTsu 中级黑马 2015-9-5 23:27:10
7#
木子青 发表于 2015-9-5 23:23
哈哈,我和你现在水平差不多,不过你理解的更深刻一点

你肯定比我NB多了,我太多知识都在费劲
回复 使用道具 举报
学的这么到位
回复 使用道具 举报
哈哈,我和你现在水平差不多,不过你理解的更深刻一点
回复 使用道具 举报
赞起....
回复 使用道具 举报
我靠,见解就是独特,我怎么就没想到呢??!
回复 使用道具 举报
赞起。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马