看看这一段程序,怎么结果会是2,怎么看都不明白! main() { union{ char i[2]; int k; } r; r.i[0]=2;
r.i[1]=0; printf("%d",r.k); getch();
} 就我的理解是:开始把2赋值给r.i[0],因为是共用型,把0赋值给r.[1]时就破坏了r.l[0]的值,以后就没有2了只有0,这究竟是怎么回事?
执行r.i[0]=2; r.i[1]=0;后,k中的数据8位显示一个数为02;以整数形式显示就是2;
执行r.i[0]=2;r.i[1]=1;后,k中的数据8位显示一个数为12,以整数显示就是1*256+2=258;
[此贴子已经被作者于2005-1-7 2:03:51编辑过]
[此贴子已经被作者于2005-1-7 13:27:30编辑过]