想摸妹妹大腚 发表于 2020-8-10 23:08:49

指针变量之间的减法

char****** p1;

char****** p2;

p1=(char******)3;

p2=(char******)5;

if (p2-p1==0)

{

printf("你理解指针吗? \n");//是否执行?

p1=0;

}为什么会执行呢?

sunrise085 发表于 2020-8-10 23:18:08

因为3和5在同一个指针下。
对于64位系统,一个指针跳过的是8字节
p1的值为3,p2的值为5,所以两个指针指向的是同一地址
若两者差值超过8,则不会进入if

想摸妹妹大腚 发表于 2020-8-11 11:07:34

sunrise085 发表于 2020-8-10 23:18
因为3和5在同一个指针下。
对于64位系统,一个指针跳过的是8字节
p1的值为3,p2的值为5,所以两个指针指 ...

用了C语言试了试 不对

sunrise085 发表于 2020-8-12 10:01:12

想摸妹妹大腚 发表于 2020-8-11 11:07
用了C语言试了试 不对

与操作系统有关
页: [1]
查看完整版本: 指针变量之间的减法