联合体c语言作用,C语言共用体-C语言union-什么是C语言中的联合体-嗨客网

C语言共用体教程

共用体的各个成员会占用不同的内存,互相之间没有影响,而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。

C语言共用体

语法

union unionName{

fieldType1 filed1;

fieldType2 filed2;

fieldType3 filed3;

};

参数

参数

描述

union

定义共用体使用的关键字。

unionName

共用体名。

fieldType1

共用体成员变量的类型。

filed1

共用体成员变量名。

说明

我们使用 union 定义了一个共用体 unionName,该共用体有三个字段,字段名分别为 filed1、filed2 和 filed3,它们的类型分别为 fieldType1、fieldType2 和 fieldType3。

注意

该共用体的三个字段是相互影响的,修改其中任何一个字段的值,都会影响其他字段的值。

C语言访问共用体成员

语法

unionName.fileld;

参数

参数

描述

unionName

共用体名。

fileld

需要访问的成员。

说明

如果是共用体,要访问其成员,那么与共用体一样,使用 .。

案例

C语言共用体

C 语言共用体定义与使用

#include

union UnionName{

int a;

float b;

char c;

};

void main(){

printf("嗨客网(www.haicoder.net)\n\n");

union UnionName union1 = {100, 200, 79};

printf("Union a = %d, b = %f, c = %d\n", union1.a, union1.b, union1.c);

printf("\n");

return 0;

}

程序运行后,控制台输出如下图所示:

c485cd3cfe68fa4df499050516a71f73.png

我们首先,定义了一个共用体 UnionName,该共用体有三个成员,即一个

接着,我们定义了一个共用体类型变量 union1 并初始化,最后,我们使用

因此,共用体的成员不可以全部一起使用,只能单独使用其中某一个字段。

C语言共用体

C 语言共用体定义与使用

#include

union UnionName{

int a;

float b;

char c;

};

void main(){

printf("嗨客网(www.haicoder.net)\n\n");

union UnionName union1;

union1.a = 100;

printf("Union a = %d, b = %.2f, c = %d\n", union1.a, union1.b, union1.c);

union1.b = 200;

printf("Union a = %d, b = %.2f, c = %d\n", union1.a, union1.b, union1.c);

union1.c = 97;

printf("Union a = %d, b = %.2f, c = %d\n", union1.a, union1.b, union1.c);

printf("\n");

return 0;

}

程序运行后,控制台输出如下图所示:

7f0bc96727bf7d498192fcf63e947eb0.png

这次,我们可以看到,我们单独赋值的共用体的字段的值,都是正确的,但同时,我们给一个字段赋值时,会影响到另一个字段的值。

第一次,我们给 a 字段赋值,此时,我们打印出的 a 字段的值是正确的,此时的 b 字段和 c 字段的值都是随机的。

接着,我们给 b 字段赋值,此时 b 字段的值是正确的,但 a 字段的值和 c 字段的值都是随机的,最后,我们给 c 字段赋值,此时 c 字段的值是正确的,但 a 字段的值和 b 字段的值都是随机的。

C语言共用体总结

在 C 语言 中,共用体可以存放任意数据类型的组合,同时,共用体或者叫联合体,也可以用来存放任意数据类型的集合。

共用体的各个成员会占用不同的内存,互相之间没有影响,而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值