#include<stdio.h>
int main()
{
int* p = (int*)-1;
int* p1 = (int*)4;
if (p > p1)
{
printf("p>p1\n");
}
else
{
printf("p<p1\n");
}
printf("%d", p1 - p);
return 0;
}
//结果是:1
#include<stdio.h>
int main()
{
int* p = (int*)-1;
int* p1 = (int*)4;
if (p > p1)
{
printf("p>p1\n");
}
else
{
printf("p<p1\n");
}
printf("%d", p1 - p);
return 0;
}
//结果是:1
对不是指向同一个“对象(内存空间)”的指针进行加减运算,其实并没有任何意义,其结果由实现决定。
ptrdiff_t这个专门进行指针计算的数据类型。
把一个毫不相关的值强制转成指针类型,与一个指针指向这个值的地址是不同的!