共用体的应用(合并单元格)
#include "stdafx.h"
//当需要把不同类型的变量存放到同一段内存单元或对同一段
//内存单元的数据按不同类型处理则需要使用共用体数据结构
struct Staff
{
char name[30];
int num;
char sex;
char job;
union
{
int grade;
char position[30];
}gOrp;
};
int _tmain(int argc, _TCHAR* argv[])
{
struct Staff staffOne;
printf("请输入姓名:"); scanf("%s", staffOne.name); getchar();
printf("请输入性别:"); scanf("%c", &staffOne.sex);
printf("请输入工号:"); scanf("%d", &staffOne.num); getchar();
printf("请输入工种:"); scanf("%c", &staffOne.job);
if (staffOne.job == 't')
{
printf("请输入职称:"); scanf("%s", staffOne.gOrp.position);
}
else
{
printf("请输入年级:"); scanf("%d", &staffOne.gOrp.grade);
}
if (staffOne.job == 't')
{
printf("姓名 = %s 性别 = %c 工号 = %d 工种 = %c 职称 = %s",
staffOne.name, staffOne.sex, staffOne.num,
staffOne.job, staffOne.gOrp.position);
}
else
{
printf("姓名 = %s 性别 = %c 工号 = %d 工种 = %c 年级 = %d",
staffOne.name, staffOne.sex, staffOne.num,
staffOne.job, staffOne.gOrp.grade);
}
return 0;
}