C/C++中的内存分配

Arr*_*row 0 c c++ memory

当你在C或C++中声明int类型的变量x时,我知道它需要4个字节的内存.因此,为此变量分配了4个内存地址.我的问题是我可以看到所有四个内存地址分配了这个变量吗?我知道这不是一个典型的问题,但我很好奇.或者它是100%总是只是内存地址&x和3下一位?那么如果它是内存地址1000,那么下一个将是1001,1002和1003?它有没有偏离这个?

还说我设置x = 5;

这是否意味着在这个内存位置1000到1002,它将用零填充,在1003中,最右边的位置有101(二进制表示为5)?

谢谢

chr*_*ock 6

一个int 可以是四个字节,但这实际上取决于编译器.因此,为什么有特定大小的类型,如uint32_t.但是,为了论证,我们说你的int是四个字节.

是的,四个字节是连续的.所以你是正确的,&x接下来的三个字节是变量的位置.

但是,假设最右边的字节最不重要,只适用于大端机器.在小端架构(如x86)上,最左边的字节将包含101表示数字5的字节.