2 qq 36124690 qq_36124690 于 2017.01.03 19:24 提问

c++指针大小比较问题。

void main()
{
int name[8]={1,2,3,4,5,6,7,8}
int *p1=name,*p2=p1+7;
for(int t;p1<p2;)
{..
....
..}
请问这两个指针比较大小,依据的是什么?是指向地址的值吗?

5个回答

qq_35626770
qq_35626770   2017.01.03 19:30

只有两个指向同一数组的指针才可以比较。指针即地址,指针比较是地址前后的比较。对于这两个指针,指向这个数组前面元素的指针小于指向后面元素的指针。不是根据指向的值。

chen956
chen956   2017.01.03 20:00

指针本身也是一个变量,这个变量的值是一个地址,变量的字节大小在32位下是4个字节。p2 = p1+7,因为p1是指向int型的指针变量,所以p2的值 等于p1的值+sizeof(int)*7;

u010136832
u010136832   2017.01.04 09:30

有一个概念明确了就行,指针变量的存储内容是什么?是地址,地址就是一串数字,所以数字当然就有大小,所以可以进行比较。

shen_wei
shen_wei   Ds   Rxr 2017.01.04 16:37

这里比较的是指针地址里面的值。。即name[0] 和 name[7]。。。

sum_TW
sum_TW   2017.01.08 19:26

指针大小是固定的4个字节,比起来没有什么意义。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!