c语言 union 意思?可以的话编一个程序 有输出的说明下

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 11:04:46
c语言 union 意思?可以的话编一个程序 有输出的说明下

c语言 union 意思?可以的话编一个程序 有输出的说明下
c语言 union 意思?
可以的话编一个程序 有输出的说明下

c语言 union 意思?可以的话编一个程序 有输出的说明下
英文直译就是联合体,就是一个多个变量的结构同时使用一块内存区域,区域的取值大小为该结构中长度最大的变量的值.
设有一个教师与学生通用的表格,教师数据有姓名,年龄,职业,教研室四项.学生有姓名,年龄,职业,班级四项.
编程输入人员数据,再以表格输出.
程序用一个结构数组body来存放人员数据,该结构共有四个成员.其中成员项depa是一个联合类型,这个联合又由两个成员组成,一个为整型量class,一个为字符数组office.在程序的第一个for语句中,输入人员的各项数据,先输入结构的前三个成员name,age和job,然后判别job成员项,如为"s"则对联合depa·class输入(对学生赋班级编号)否则对depa·office输入(对教师赋教研组名).
在用scanf语句输入时要注意,凡为数组类型的成员,无论是结构成员还是联合成员,在该项前不能再加"&"运算符.如程序第18行中
body[i].name是一个数组类型,第22行中的body[i].depa.office也是数组类型,因此在这两项之间不能加"&"运算符.程序中的第二个for语句用于输出各成员项的值:
int main()
{
struct
{
char name[10];
int age;
char job;
union
{
int class;
char office[10];
} depa;
}body[2];
int n,i;
for(i=0;i