Possible Duplicate:
Pointer Arithmetic
给定的代码
int arr[12];
int * cur = arr;
cur++;
cout<<"cur-arr = "<<cur-arr<<endl;
输出
1
,但我期望sizeof(int)
。有人可以解释这种行为的性质吗? 最佳答案
这是C指针算术的已定义行为。它以指针类型的大小为单位。如果将最后一行的减法更改为
(char *)cur - (char *)arr
您在输出中得到4。
关于c++ - C中两个地址的差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8730662/