共用体
用处对于因为某一条件不同,某一变量有多项向选择的情况下使用(对同一段内存有不同的分配作用。
#include <stdlib.h>
#include <stdio.h>
int main() {
struct person {
int num;
char name[10];
char gender;
char job;
union {
int class1;
char position[10];
} en;
} person[2];
for (int i = 0; i < 2; i++) {
scanf("%d %s %c %c", &person[i].num, person[i].name, &person[i].gender, &person[i].job);
if (person[i].job == 's') {
scanf("%d", &person[i].en.class1);
printf("\n");
printf("%d %s %c %c %d",person[i].num,person[i].name,person[i].gender,person[i].job,person[i].en.class1);
}
else {
scanf("%s", person[i].en.position);
printf("\n");
printf("%d %s %c %c %s", person[i].num, person[i].name, person[i].gender, person[i].job,
person[i].en.position);
}
}
return 0;
}
注意:共用体一次只能给其中的一个成员赋值,当给另外一个成员赋值的时候,上一次赋值的结果自动销毁,
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
struct person {
int num;
char name[10];
char gender;
char job;
union {
int class1;
char position[10];
} en;
} person[2];
scanf("%d", &person[0].en.class1);
scanf("%s", person[0].en.position);
cout <<person[0].en.position;
return 0;
}