#includestdiohint mainint argc char const argv union short i; char a2; u; ua0 = 0x11; ua1 = 0x22; printf0xxn ui; return 0;输出结果是为什么小端还是大端
输出结果是0x2211。这是因为在内存中,数据以字节为单位存储,并且在不同的机器架构中,字节的存储顺序可能不同。
在小端模式(Little Endian)中,低字节被存储在内存的低地址,高字节被存储在内存的高地址。因此,当将0x11存储在低地址,0x22存储在高地址时,读取整个short类型变量时就会得到0x2211。
而在大端模式(Big Endian)中,高字节被存储在内存的低地址,低字节被存储在内存的高地址。因此,如果在大端模式下运行该代码,输出结果将为0x1122。
原文地址: https://www.cveoy.top/t/topic/iBAW 著作权归作者所有。请勿转载和采集!