c内存地址问题,求助大佬
求教为什莫修改b的值是如何影响a的值的,我用的dev——c++,发现并不会如题影响a的值,但根据弹幕提示,当在下面在打印a,b的地址时,此时a,b的值会变得和题一样 p是单字节字符变量b的int类型指针,258=0x0102,而b是在高字节,由于小端的原因所以是2;*p=258;实际上已经越界 本帖最后由 jackz007 于 2021-9-17 17:24 编辑
每个整型数一般都占用4个字节内存,258 换算成十六进制值是 0x102, Intel 处理器采用Big-Endian 模式,整型数 0x102 在内存中按 02 01 00 00 的字节顺序存放,指针 p 指向了 b,当给 p 所指向内存单元赋值 258 时,b 获取到四个字节中的第一个字节 0x02,而 a 获取到第二个字节 0x01,于是 a = 0x01 , b = 0x02。 jackz007 发表于 2021-9-17 17:22
每个整型数一般都占用4个字节内存,258 换算成十六进制值是 0x102, Intel 处理器采用Big-Endian ...
悟了,多谢jack兄,{:10_279:} jhq999 发表于 2021-9-17 17:12
p是单字节字符变量b的int类型指针,258=0x0102,而b是在高字节,由于小端的原因所以是2;
*p=258;实际上已 ...
已明白,多谢j999兄{:10_298:}
页:
[1]