当我这样做时
int* pointer = new int; int* pointer2 = new int;
我认为这两个指针在我的计算机内存中彼此相邻(它们相距4个字节)所以理论上两个指针的差异应该是4,但是当我显示指针时它会显示:
0x6000227e0 0x600022800
这是2的差异,这意味着int是2个字节长?我的逻辑错了吗?
答案 0 :(得分:4)
不,这是32个字节的差异,而不是两个字节。差异是十六进制的0x20
或十进制的32。
此外,您甚至不能保证在内存中连续分配对象。
换句话说,这些内存地址绝对没有任何意义。