union { int i; char x[2]; }a; int main() { a.x[0]=10; a.x[1]=1; printf("%d\n",a.i); return 0; } 输出结果是什么,

来源:学生作业帮助网 编辑:六六作业网 时间:2024/08/10 09:06:25
union{inti;charx[2];}a;intmain(){a.x[0]=10;a.x[1]=1;printf("%d\n",a.i);return0;}输出结果是什么,union{inti;c

union { int i; char x[2]; }a; int main() { a.x[0]=10; a.x[1]=1; printf("%d\n",a.i); return 0; } 输出结果是什么,
union { int i; char x[2]; }a; int main() { a.x[0]=10; a.x[1]=1; printf("%d\n",a.i); return 0; } 输出结果是什么,

union { int i; char x[2]; }a; int main() { a.x[0]=10; a.x[1]=1; printf("%d\n",a.i); return 0; } 输出结果是什么,
union 只分配一块内存,有i和x公用, 即修改了x的内容,i的内容也改变了
按照内存分布,x 改之后内存为 0x010a
也就是说,i的内存时0x10a
也就是10进制266