c语言指针运算问题
如图,1个int 不该占用4字节吗,为什么这里答案是5 因为它们都是int类型指针*(a+1) 它并不是地址加一是加4
你要的20的结果应该是这样的
printf("%d",(int)q - (int)p); 这跟浮点类型和整型类型差不多
4/3 = 1
4.0/3 = 4.0/3.0 = 1.33333
这两个类型编译器会帮我们转换 只是我们写久了觉得两个之间可以相互运算
严格来说是错误的写法
指针类型没跟整型类型有强制转换 也就是说(int)q - p 编译器会报错
int 不是4个字节是sizeof (int) 大小.
还有输出确实是5,百度指针运算。
页:
[1]