关于共用体的问题
想问下大佬们为什么c会输出2呀#include <stdio.h>
void main()
{
union {
int i;
char c;
}r, * s = &r;
s->i = 0x28D;
printf("%x\n", s->c);
} 本帖最后由 jackz007 于 2022-11-7 16:31 编辑
我们使用的 PC 电脑采用 Intel CPU 架构,数字在内存中按照 Little - Endian 模式存放,整型数 0x28d 在内存中是按照8D 02 00 00 的顺序排列的,所以,s -> c = 0x8D,s -> c = 0x02,s -> c = 0x00,s -> c = 0x00。 jackz007 发表于 2022-11-7 16:27
我们的电脑采用 Intel CPU 架构,数字在内存中按照 Little - Endian 编码存放,整型数 0x28d 在内存 ...
谢谢大佬解惑!!
页:
[1]