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