请问:两个指针变量可以相减,如两个指针变量指向同一个数组的元素,

则 p2-p1=4-1=3
同一个元素,那不应该是p2-p1=0吗?怎么p2=4,p1=1不解。

a.
相加,其实不是不能,而是没有意义
b.
相减,是可以的,比如一个指针指向字符串的开始,另一个指针结尾,相减可以得到字符串的个数
c.
比较,是可以的,可以比较是不是相等,也可以比较谁大谁小
d.
指向同一地址,不用解释了,当然可以
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-18
同一个数组的元素

这里是同一个数组,不是一个数组中的同一个元素,
所以是指向同一个数组中的不同元素,。追问

如果是指向同一个数组的地址那就是p1-p2=0,是吧?

追答

第2个回答  2011-12-21
*P2-*P1 P2-P1是两个指针的值相减,不是指针指向内容相减。
第3个回答  2011-12-18
两个指针变量指向同一个数组的元素,则该变量的值相等。
如:
int *p1;int *p2;
p1=&a[i];
p2=&a[i];

p1-p2=0
如果对p1赋值为1;对p2赋值为4;即p1=1;p2=4;
则p2-p1=4-1=3追问

p1=&a[i];
p2=&a[i];
这里就是说是两个指针所指向的地址都相同,都指向同一个数组的地址吗?可不可以是同一个数组的不同地址?

追答

两个指针所指向的地址相同,都指向同一个数组的地址。
int a[12];
int b[12];
int *p;
int *q;
p=a;
q=b;
p和q分别指向不同的数组,获得不同的数组首地址。

本回答被提问者采纳
第4个回答  2011-12-19
P2指向4,P1指向1