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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 羊口羊口羊 中级黑马   /  2015-9-11 22:38  /  594 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从代码图上发现:p1-p=3,可是分别打印出来的p1的值与p的值相减,并不等于3,而是等于12。      一开始我也觉得p1-p应该等于12,因为指针p1=&a[3], p=&a[0],相差三个元素,再乘上int型占4个字节,应该得到的差值为12.
      我又把教学视频看了一遍,得到这样一句话:两指针变量相减所得之差是两个指针所指元素之间相差的元素个数。(当然这个时候两个指针是指向同一个数组的,否则计算出来的结果就没有意义了)
     可不可以这么理解:p1 p本身也是int型指针,在指向同一个数组的时候,二者的差值默认就是已经除去数据类型int占的4个字节,才会等于两个指针所指元素之间相差的元素个数,是这样吗?

QQ图片20150911222336.png (10.26 KB, 下载次数: 5)

QQ图片20150911222336.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马