为什么Visual Studio内存地址根据视图进行shuffle?

问题描述 投票:0回答:1

在 Visual Studio 中查看内存地址时,我注意到排列会根据查看内存的方式而变化。示例:

int a = 3;

int* b = &a;

1 字节:0x 03 00 00 00

2字节:0x 0003

4字节:0x 00000003

现在像这样的小数目,也没什么大不了的。但当查看更多数字时...

int a = 1012346589;

int* b = &a;

1 字节:0x dd 2e 57 3c

2 字节:0x 2edd 3c57

4字节:0x 3c572edd

到处都是这样的情况,这真的让我很困惑,因为我的直觉假设是这样的,这与我使用过的其他工具是一致的:

1 字节:0x 00 00 00 03

2字节:0x 0003

4字节:0x 00000003

1字节:0x 3c 57 2e dd

2 字节:0x 3c57 2edd

4字节:0x 3c572edd

我使用过其他内存调试工具,这是我第一次看到它以这种方式排列。这只是视觉工作室的一个怪癖,是一个设置吗?

起初,我认为 1 字节视图可能隐藏了前 3 个字节,因为它们是 0,但在使用更大的数字进行测试后,我发现情况并非如此,并且不同的视图有时会产生完全不同的排列。

visual-studio-2022 memory-address
1个回答
0
投票

正如 Hans Passant 所说,你的处理器是小端的。这是其设计的一个非常基本的属性,你最好习惯它。

请参阅https://en.wikipedia.org/wiki/Endianness

© www.soinside.com 2019 - 2024. All rights reserved.