这种垃圾题尽量不要做。除了考试难为人也没啥别的用。
这是个联合体,也叫共用体,它的赋值是覆盖的,因为他们本身就占用一块内存空间。
char型数组,占用2×1字节,
int变量占用1×4字节,
所以共用体变量r占用4个字节。对成员r.i[0]和r.i[1]赋值之后,这个内存空间就有了内容,而不论你输出哪个成员结果都是一样的。
而内存空间情况是:
00000000 00000000 00000010 00000000
所以结果是这四个字节以十进制输出的话就是512呗。
这是Big Endian
低位在前,高位在后
所以int的数据
比如0xFE00
内存中存的是00FE
你的int内存中是0002
换成0x0200
就是512