C语言共用体union
union共用体说明:
当一个共用体被声明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度的整数倍。
比如union中有{int x; double x1; char name[10];}这个共用体的长度为10字节,因为name[10]是这个共用体中最大的一个变量
#include <stdio.h> struct A { int num; char name[20]; char job; union //共用体关键字union { int x; char zy[20]; }t1; //共用体对象 }; int main() { struct A a[2]; int i=0; while (i < 2) { printf("请输入编号:"); scanf_s("%d", &a[i].num); printf("请输入姓名:"); scanf_s("%s", a[i].name, 20); printf("请输入职位,学生为s,老师为t :"); getchar(); scanf_s("%c", &a[i].job, 1); if (a[i].job == ‘s‘) { printf("请输入该学生的班级:"); scanf_s("%d", &a[i].t1.x); } else { printf("请输入该老师的职位:"); scanf_s("%s", a[i].t1.zy, 20); } i++; } printf("************************************\n"); i = 0; while (i < 2) { if (a[i].job == ‘s‘) { printf("%d\t%s\t%c\t%d\n", a[i].num, a[i].name, a[i].job, a[i].t1.x); } else { printf("%d\t%s\t%c\t%s\n", a[i].num, a[i].name, a[i].job, a[i].t1.zy); } i++; } system("pause"); return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。