首页 > 软件操作教程 > 编程开发 > C语言
题目内容

C语言 共用体变量的引用

题目答案

    对于共用体变量不能整体引用,只能引用共用体变量的某个成员,引用方式与引用结构体变量成员相似,对于共用体成员可以赋值、输入、输出、计算等。例如:

union data

{

    int a;

    int b;

    int c;

};

main()

{

    union data u1;

    u1.a=10;

    u1.b=15;

    u1.c=u1.a+u1.b;

    printf("%d,%d,%d\n",u1.a,u1.b,u1.c);

}

    程序分析:定义一个共用体data,其中含三个成员a、b、c,用共用体data定义变量u1,并分别为u1的各个成员u1.a、u1.b、u1.c赋值。最后输出的结果是什么呢?

    假设为共用体变量u1分配的内存空间为2000,则u1中的各个成员a、b、c在内存中的首地址全部都是2000。程序执行过程如下:

    ①先为u1.a赋值10,2000开始地址段中存入10。

    ②再为u1.b赋值15, 2000地址段中存入15,覆盖刚存入的10。

    ③最后计算u1.a+u1.b,因为u1.a、u1.b共用一个地址,所以u1.a、u1.b的值全部都是15,相加的结果为30,将30赋给u1.c,成员c与成员a、b共用地址,所以c的值30又覆盖了原来存在该地址中的15,输出u1.a、u1.b、u1.c全部都是30。


程序执行,输出结果为:

  30,30,30

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

软件操作 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

相关视频试题

最需教育客户端 软件问题一手掌握

去 App Store 免费下载 iOS 客户端