位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 共用体的特点

提问人:刘团圆发布时间:2020-12-02

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

(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)
返回顶部