请问:两个指针变量可以相减,如两个指针变量指向同一个数组的元素,
发布网友
发布时间:2023-06-26 10:25
我来回答
共5个回答
热心网友
时间:2023-10-17 13:50
a.
相加,其实不是不能,而是没有意义
b.
相减,是可以的,比如一个指针指向字符串的开始,另一个指针结尾,相减可以得到字符串的个数
c.
比较,是可以的,可以比较是不是相等,也可以比较谁大谁小
d.
指向同一地址,不用解释了,当然可以
热心网友
时间:2023-10-17 13:51
同一个数组的元素
这里是同一个数组,不是一个数组中的同一个元素,
所以是指向同一个数组中的不同元素,。追问如果是指向同一个数组的地址那就是p1-p2=0,是吧?
追答是
热心网友
时间:2023-10-17 13:51
*P2-*P1 P2-P1是两个指针的值相减,不是指针指向内容相减。
热心网友
时间:2023-10-17 13:52
两个指针变量指向同一个数组的元素,则该变量的值相等。
如:
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分别指向不同的数组,获得不同的数组首地址。
热心网友
时间:2023-10-17 13:53
P2指向4,P1指向1