VC++基础教程:联合定义与应用.pdfVIP

  • 0
  • 0
  • 约6.54千字
  • 约 6页
  • 2026-02-09 发布于北京
  • 举报

6.6、联合的定义

A、联合体又叫共用体

B、联合变量的说明

C、联合变量的赋值和使用

是union的中文解释,又称为共用体。

各种程序语言都有这种数据结构,

汇编,C语言,C++都有这种数据类型,

它就是把各种基本类型在一起

联合(union)

1.联合说明和联合变量定义

联合也是一种新的数据类型,它是一种特殊形式的变量。

联合说明和联合变量定义与结构十分相似。其形式为:

union联合名{

数据类型成员名;

数据类型成员名;

...

}联合变量名;

联合表示几个变量公用一个内存位置,在不同的时间保存不同的数据类型和不

同长度的变量。

下例表示说明一个联合a_bc:

uniona_bc{

inti;

charmm;

};

再用已说明的联合可定义联合变量。

例如用上面说明的联合定义一个名为lgc的联合变量,可写成:

uniona_bclgc;

在联合变量lgc中,整型量i和字符mm公用同一内存位置。

当一个联合被说明时,编译程序自动地产生一个变量,其长度为联合中

最大的变量长度。

联合其成员的方法与结构相同。同样联合变量也可以定义成数组或

指针,

但定义为指针时,也要用-符号,此时联合成员可表示成:

联合名-成员名

另外,联合既可以出现在结构内,它的成员也可以是结构。

例如:

Struct{

intage;

char*addr;

union{

inti;

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;是错误的。

2.结构和联合的区别

结构和联合有下列区别:

1.结构和联合都是由多个不同的数据类型成员组成,但在任何同一时刻

联合中只存放了一个被选中的成员,而结构的所有成员都存在。

2.对于联合的不同成员赋值,将会对其它成员重写,原来成员的值就不

存在了,而对于结构的不同成员赋值是互不影响的。

下面举一个例了来加对深联合的理解。

例4:

文档评论(0)

1亿VIP精品文档

相关文档