C语言指针运算的值,图中括号里面的

pc和pl在减2后为什么不是998而是999和996

img


天赋点国际化冯夫人

因为pc在这之前++了,当时pc的值是1001,再减2就是999喔,pl先++变为1004,因为pl强制转换为long*类型了,long占四个字节。指针的类型决定了指针走一步走多长。因为long为四个字节,所以pl++变为1004,pl再减2,就变为1004减去4乘2等于996

这个跟指针类型有关 sizeof(char)=1字节,sizeof(double)一般是4字节。指针加减的是类型所占字节