标签: c++ c pointers
考虑以下c片段:
int main(){ int *a = (int *)60; int *b = (int *)40; cout << a - b; return 0; }
以下代码将输出显示为5.我的理解是int *a定义了一个指向内存地址60的指针,因此按此逻辑输出应为20.输出a的值和b,它给出了十六进制表示60(0x3c)和40(0x28);程序还打印5。
int *a
a
b
有人可以解释一下这背后的原因吗?