【C语言】共用体(联合体)union快速学习
程序员文章站
2022-07-15 08:54:23
...
共用体
其它文章: 【C语言】结构体快速学习
0. 前言
- 结构体中,编译器为每个数据成员都分配内存地址空间,但是共用体(联合)的所有数据成员共用一块内存。
- 在某个确定的时刻,共用体只能表示一种成员类型。
1. 共用体定义
union computerInfo{
char id[20];
float price;
};
- 适用场景:
某个部门要登记所有的电脑,如果是品牌机,就登记电脑型号,如果是组装机,就登记价格,型号和价格只取其一,使用共用体最合适。
2. 声明共用体变量
union computerInfo{
char id[20];
float price;
}computer1, computer2;
3. 初始化共用体变量
computerInfo computer1 = {"ThinkPad E431"};
computerInfo computer1 = {4500};
- 或
union computerInfo{
char id[20];
float price;
}computer1 = {"ThinkPad E431"};
4. 访问共用体变量的成员
不论共用体在定义时成员列表有多少项,在某个确定的时刻,共用体变量只能存储一个成员。
#include<stdio.h>
union computerInfo {
char brand[20];
float price;
};
int main() {
union computerInfo comp1 = { 4500 };
int type = 0;
printf("Price(Input 0) or Brand(Input 1):\n");
scanf("%d", &type);
if (type == 0) {
printf("\nPlease input the Price of the computer:\n");
scanf("Brand:\t%f", &comp1.price);
printf("Price:\t%.1f\n", comp1.price);
}
else if (type == 1) {
printf("\nPlease input the Brand of the computer:\n");
scanf("Brand:\t%s", &comp1.brand);
printf("Brand:\t%s\n", comp1.brand);
}
else
printf("Error\n");
return 0;
}
5. 共用体赋值
union computer B;
B = A;
上一篇: C语言中的 联合体 union 说明
下一篇: c 水仙花数