- 指针与指针之间可以做减法运算,前提是指针的类型要一致
- 指针与指针之间的减法运算,得到的结果是long类型的一个数,这个数表示这两个地址之间有多少个指针类型的值
- 指针与指针之间,只能做减法运算,不能做加法,不能做乘法,不能做除法
- 运用于判断两个元素之间相差多少个元素
代码:
#include <stdio.h>
int main(int argc, const char * argv[])
{
int arr[] = {10,20,30,40,50};
int *p1 = &arr[0];
int *p2 = &arr[4];
long num = p2-p1;
printf("%ld\n",num);
return 0;
}
输出num = 4;即相差4个元素
那么指针与指针之间的比较运算,干嘛使的呢?
判断两个地址,谁是高地址,谁是低地址,或者判断两个地址是否是同一个字节的地址
#include <stdio.h>
int main(int argc, const char * argv[])
{
int num1 = 10;
int num2 = 20;
int *p1 = &num1;
int *p2 = &num2;
int num = p1 > p2;
printf("%d\n",num);
return 0;
}