标签:
有时需要使几种不同类型的变量存放到同一段内存单元中。例如,可把一个整型变量、一个字符型变量、一个双精度型变量放在同一个地址开始的内存单元中(见图7.12)。
- #include <iostream>
- #include <string>
- #include <iomanip>//因为在输出流中使用了控制符setw
- using namespace std;
- struct
- {
- int num;
- char name[10];
- char sex;
- char job;
- union P //声明共用体类型
- {
- int grade; //年级
- char position[10]; //职务
- }category; //成员category 为共用体变量
- }person[2]; //定义共用体数组person,含两个元素
- int main( )
- {
- int i;
- for(i=0;i<2;i++) //输入两个学生的数据
- {
- cin>>person[i].num>>person[i].name
- >>person[i].sex>>person[i].job;
- if(person[i].job==‘s‘)
- cin>>person[i].category.grade; //若是学生则输入年级
- else
- if (person[i].job==‘t‘)
- cin>>person[i].category.position; //若是教师则输入职务
- }
- cout<<endl<<"No. Name sex job grade/position"<<endl;
- for(i=0;i<2;i++)
- {
- if (person[i].job==‘s‘) cout<<person[i].num<<setw(6)
- <<person[i].name<<" "<<person[i].sex <<" "
- <<person[i].job<<setw(10)<<person[i].category.grade<<endl;
- else cout<<person[i].num<<setw(6)<<person[i].name
- <<" "<<person[i].sex <<" "<<person[i].job
- <<setw(10)<<person[i].category.position<<endl;
- }
- return 0;
- }
标签:
原文地址:http://blog.csdn.net/u011392772/article/details/42775531