#include
int main()
{
union
{
int i[2];
int k;
int c;
}t,*s = &t;
s->i[0] = 10;
s->i[1] = 20;
s->k=30;
printf("%d\n", s->k);
printf("%d\n", s->i[0]);
printf("%d\n", s->c);
return 0;
}
这个程序输出的值为什么都是三十?求大神指教。
求解!跪求大神相助;
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- threenewbee 2017-05-21 09:13关注
联合体存储是共享的,所以看最后一个赋值怎么覆盖的内存。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报