c++指针相关问题

#include<stdio.h>
void f(int *x,int *y)
{int t;
t=*x;*x=*y;*y=t;
}
main()
{int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p>q)
{f(p,q);p++;q--;}
for(i=0;i<8;i++) printf("%d,",a[i]);
}
其中有一段while(p>q),p,q是指针,怎么比较大小的?

第1个回答  2010-04-16
p、q两个指针都是指向数组a的元素,a是一段连续的内存区域,所以p、q是可以比较大小的q指向的元素下标大于p指向的元素下标就表示q指针上来就大于p指针。而该while循环条件永远不会成立。
你如果改成p<q,程序将变成一个倒序输出数组的程序。
第2个回答  2010-04-16
p,q是指针变量,存的是地址,你这样是比较地址的大小啊,你要比较该地址的内容的大小应该用*p,*q
第3个回答  2010-04-16
指针的比较是比较指向地址的高低
如 p = &a[0]; q = &a[7];则p<q;本回答被提问者采纳
第4个回答  2010-04-16
可以看成比较的就是所指向的元素所在数组的下标大小
相似回答