Union
来源:互联网 发布:apache storm官方文档 编辑:程序博客网 时间:2024/06/02 20:18
/*
一、定义:
有时需要使几种不同类型的变量存放在同一段内存单元中。
虽然在同一段内存中不同数据类型所占字节数不同,
但都从同一地址开始存放,也就是使用了覆盖技术,几个变量互相覆盖。
这种使几个不同的变量共占一段内存的结构,称为共同体类型的结构(也称为联合类型)。
二、关键点:
1.当数据项使用2种或多种形式(但是不会同时使用的时候),可节省空间。
2.内存长度等于最长的成员的长度
3.能够访问的是共用体变量中最后一次被赋值的成员,在对一个新的成员赋值后原有的成员就失去作用
4.共同体变量的地址和它的各成员的地址相同,为同一个地址。
*/
struct { //声明匿名的结构体
char job;
union P { //声明共用体类型
int grade; //年级
char position[10]; //科目
}category; //成员category为共用体变量
}person[2]; //定义共用体数组person,含两个元素(个人认为就是结构体类型变量)
int main(){
for(int i=0;i<2;i++){
cin>>person[i].job;
if(person[i].job=='s'){
cin>>person[i].category.grade;
}else if(person[i].job=='t'){
cin>>person[i].category.position;
}
}
for(int i=0;i<2;i++){
if(person[i].job=='s'){
cout<<person[i].job<<setw(10)<<person[i].category.grade<<endl;
}else{
cout<<person[i].job<<setw(10)<<person[i].category.position<<endl;
}
}
return 0;
}
/*
input:
s 98
t math
*/
一、定义:
有时需要使几种不同类型的变量存放在同一段内存单元中。
虽然在同一段内存中不同数据类型所占字节数不同,
但都从同一地址开始存放,也就是使用了覆盖技术,几个变量互相覆盖。
这种使几个不同的变量共占一段内存的结构,称为共同体类型的结构(也称为联合类型)。
二、关键点:
1.当数据项使用2种或多种形式(但是不会同时使用的时候),可节省空间。
2.内存长度等于最长的成员的长度
3.能够访问的是共用体变量中最后一次被赋值的成员,在对一个新的成员赋值后原有的成员就失去作用
4.共同体变量的地址和它的各成员的地址相同,为同一个地址。
*/
struct { //声明匿名的结构体
char job;
union P { //声明共用体类型
int grade; //年级
char position[10]; //科目
}category; //成员category为共用体变量
}person[2]; //定义共用体数组person,含两个元素(个人认为就是结构体类型变量)
int main(){
for(int i=0;i<2;i++){
cin>>person[i].job;
if(person[i].job=='s'){
cin>>person[i].category.grade;
}else if(person[i].job=='t'){
cin>>person[i].category.position;
}
}
for(int i=0;i<2;i++){
if(person[i].job=='s'){
cout<<person[i].job<<setw(10)<<person[i].category.grade<<endl;
}else{
cout<<person[i].job<<setw(10)<<person[i].category.position<<endl;
}
}
return 0;
}
/*
input:
s 98
t math
*/
阅读全文
0 0
- Union
- union
- union
- UNION
- union
- union
- union
- UNION
- union
- union
- Union
- union
- union
- union
- union
- union
- union
- UNION
- ThreadLocal源码分析
- tableview对单一section或cell的刷新
- 1024. 科学计数法 (20)
- DockerFile命令大全
- spring入门
- Union
- 打印华氏温度与摄氏温度对照表
- cocos2dx与多线程
- Java NIO:浅析I/O模型
- ECharts3.0折线图------------手把手教你每一项的样式设计
- 171202之ajax提交整个form表单(二)
- 【转】Linux用户态程序运行时间详解
- android ndk 怎样调用第三方的so库文件
- javabean简述