聯(lián)合變量的賦值和使用
對(duì)聯(lián)合變量的賦值,使用都只能是對(duì)變量的成員進(jìn)行。 聯(lián)合變量的成員表示為: 聯(lián)合變量名.成員名 例如,a被說明為perdata類型的變量之后,可使用 a.class a.office 不允許只用聯(lián)合變量名作賦值或其它操作。 也不允許對(duì)聯(lián)合變量作初始化賦值,賦值只能在程序中進(jìn)行。還要再?gòu)?qiáng)調(diào)說明的是,一個(gè)聯(lián)合變量, 每次只能賦予一個(gè)成員值。換句話說,一個(gè)聯(lián)合變量的值就是聯(lián)合變員的某一個(gè)成員值。
[例7.15]設(shè)有一個(gè)教師與學(xué)生通用的表格,教師數(shù)據(jù)有姓名,年齡,職業(yè),教研室四項(xiàng)。學(xué)生有姓名,年齡,職業(yè),班級(jí)四項(xiàng)。
編程輸入人員數(shù)據(jù), 再以表格輸出。
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<2;i++)
{
printf("input name,age,job and department\n");
scanf("%s %d %c",body[i].name,&body[i].age,&body[i].job);
if(body[i].job=='s')
scanf("%d",&body[i].depa.class);
else
scanf("%s",body[i].depa.office);
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |