#include<stdio.h>
union node {
int i;
char c[2];
};
main() {
union node n;
n.c[0] = 0;
n.c[1] = 2;
printf("%d\n", n.i);
return 0;
}
我认为它给出了512
输出,因为 c[0] 值存储在第一个字节中,而 c[1] 值存储在第二个字节中,但是给出了1965097472
. 为什么 ?。我在 Windows 的代码块中编译了这个程序。