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 个回复

倒序浏览
赞起。。。。。。
回复 使用道具 举报
我靠,见解就是独特,我怎么就没想到呢??!
回复 使用道具 举报
赞起....
回复 使用道具 举报
哈哈,我和你现在水平差不多,不过你理解的更深刻一点
回复 使用道具 举报
学的这么到位
回复 使用道具 举报
TTsu 中级黑马 2015-9-5 23:27:10
7#
木子青 发表于 2015-9-5 23:23
哈哈,我和你现在水平差不多,不过你理解的更深刻一点

你肯定比我NB多了,我太多知识都在费劲
回复 使用道具 举报
pyy061 来自手机 中级黑马 2015-9-5 23:29:32
8#
果然大神~
回复 使用道具 举报
分析的很好啊
回复 使用道具 举报
恩恩  分析的很好
回复 使用道具 举报
嘿哟   不错嘛
回复 使用道具 举报
分析的很详细,赞一个
回复 使用道具 举报
学习学习!
回复 使用道具 举报
6的不行,。学习了。
回复 使用道具 举报
挺你一个~~~
回复 使用道具 举报
果然是大神,厉害厉害,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马