唐僧爱吃唐僧肉 2017-05-21 08:19 采纳率: 16.7%
浏览 761
已采纳

求解!跪求大神相助;

#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;
}
这个程序输出的值为什么都是三十?求大神指教。

  • 写回答

3条回答 默认 最新

  • threenewbee 2017-05-21 09:13
    关注

    联合体存储是共享的,所以看最后一个赋值怎么覆盖的内存。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用