C++ /地址空间:每个地址2个字节?

Joh*_*Doe 1 c++ pointers memory-address

我只是想尝试一下,我想知道这是怎么回事.我有以下代码:

int var1 = 132;

int var2 = 200;

int *secondvariable = &var2;

cout << *(secondvariable+2) << endl << sizeof(int) << endl;
Run Code Online (Sandbox Code Playgroud)

我得到输出

132

4

那么第二个int怎么可能只有2个地址更高?我的意思是不应该是4个地址吗?我目前在WIN10 x64下.

问候

Som*_*ude 7

有了cout << *(secondvariable+2)你不打印的指针,你打印的价值secondvariable[2],这是一个无效的索引并导致未定义的行为.

如果要打印指针,请删除取消引用并打印secondvariable+2.