当前位置:天才代写 > tutorial > C语言/C++ 教程 > C语言基本教程(四)指针、布局、连系和列举(15)

C语言基本教程(四)指针、布局、连系和列举(15)

2017-11-03 08:00 星期五 所属: C语言/C++ 教程 浏览:298

连系(union)

1.连系说明和连系变量界说
连系也是一种新的数据范例,它是一种非凡形式的变量。
连系说明和连系变量界说与布局十分相似。其形式为:
union 连系名{
数据范例 成员名;
数据范例 成员名;

} 连系变量名;
连系暗示几个变量公用一个内存位置,在差异的时间生存差异的数据范例和差异长度的变量。
下例暗示说明一个连系a_bc:
union a_bc{
int i;
char mm;
};
再用已说明的连系可界说连系变量。
譬喻用上面说明的连系界说一个名为lgc的连系变量,可写成:
union a_bc lgc;
在连系变量lgc中,整型量i和字符mm公用同一内存位置。
当一个连系被说明时,编译措施自动地发生一个变量,其长度为连系中最大的变量长度。
连系会见其成员的要领与布局沟通。同样连系变量也可以界说成数组或指针,但界说为指针时,也要用"->"标记,此时连系会见成员可暗示成:
连系名->成员名
别的,连系既可以呈此刻布局内,它的成员也可以是布局。
譬喻:
struct{
int age;
char *addr;
union{
int i;
char *ch;
}x;
}y[10];
若要会见布局变量y[1]中连系x的成员i,可以写成:
y[1].x.i;
若要会见布局变量y[2]中连系x的字符串指针ch的第一个字符可写成:
*y[2].x.ch;
若写成"y[2].x.*ch;"是错误的。

 

    关键字:

天才代写-代写联系方式