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

C语言 共用体的特点

题目答案

通过上述例题,可以看出:

(1)共用体通过内存覆盖技术,实现共用体变量各成员的内存共享,所以在某一时刻,共用体变量的内存地址中存放的、起作用的是最后一次存入的成员值。

(2)由于所有成员共享同一内存空间,故共用体变量与其各成员的地址相同。例如,&u1=&n1.a=&u1.b=&u1.c。

(3)不能对共用体变量进行初始化,也不能将共用体变量作为函数参数,以及不能使函数返回一个共用数据,但可以使用指向共用体变量的指针。

(4)对于共用体中定义的不同类型的成员,在引用时需要注意不同类型的差异,如:

union un 

{

    int a; 

    float b;

};

main()

{

    union un ul;

    ul.a=20;

    ul.b=10;

    printf("%f",ul.a);

}

    程序执行结果,有的读者可能认为是10,但实际输出是“0”。为什么会这样呢?

    因为共用体变量中起作用的是最后一次存入的成员值,也就是u1.b的值10,而u1.b类型为浮点型,在内存中的存储方式与整型是不同的,所以当u1.b的值覆盖了成员a时,并不能将10也赋值给成员a。

(5)共用类型可以出现在结构类型定义中,同样,结构体类型定义中也可以出现共用体类型。

网友评论(共0条评论)

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

最新评论

点击加载更多评论>>

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

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

相关视频试题

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

去 App Store 免费下载 iOS 客户端