设为首页 加入收藏

TOP

2.1.3 构造数据类型(4)
2013-11-12 22:24:50 来源: 作者: 【 】 浏览:85
Tags:2.1.3 构造 数据 类型

2.1.3  构造数据类型(4)

(2) 结构体变量的初始化

与其他类型变量一样,也可以给结构体的每个成员赋初值,这称为结构体的初始化。有两种初始化形式,一种是在定义结构体变量时进行初始化,一般语法格式如下:

  1. struct 结构体名 变量名={初始数据表}; 

另一种是在定义结构体类型时进行结构体变量的初始化。一般语法格式如下:

  1. struct 结构体名  
  2.     {  
  3.     成员表列;  
  4.     }变量名={初始数据表};  

例如,前述student结构体类型的结构体变量wan在说明时可以初始化如下:

  1. struct student wan={"Wan Jun",'m',20," SuZhou Road No.100"}; 

其所实现的功能,与下列分别对结构体变量的每个成员赋值所实现的功能相同:

  1. strcpy(wan.name," Wan Jun");  
  2.     wan.sex='m';  
  3.     wan.age=20;  
  4.     wan.addr=" SuZhou Road No.100";  

与数组的初始化特性相同,结构体的初始化仅限于外部的和static型结构体。也就是说,在函数内部对结构体进行初始化时,必须指定该结构体为static型。对默认存储类型的auto型结构体不能在函数内部对其进行初始化。

4) 结构体应用举例

例2-4  把家庭定义成包含一个丈夫,一个妻子,一个或多个孩子,如表2-4所示是这一数据的记录。把这些数据输出。

表2-4  几个家庭的数据记录

Husband

Wife

Children

John

Kathy

2

Kenneth

Syiivia

3

Peter

Loyce

1

  1. #include<iostream.h> 
  2. void main()  
  3. {  
  4. struct family  
  5.     {  
  6. char husband[10];  
  7. char  wife[10];  
  8. int children;  
  9. };  
  10.     struct family Gerard={"John","Kathy",2};  
  11. struct family Cole={"Kenneth","Sylvia",3};  
  12. struct family Chen={"Peter","Joyce",1};  
  13. Gerard. children=0;  
  14. Cole. children=2;  
  15. Chen. children=4;  
  16. cout<<" Gerard  Children:"<< Gerard. children<<"\n";  
  17. cout<<" Cole   Children:"<< Cole. children<<"\n";  
  18. cout<<" Chen   Children:"<< Chen. children<<"\n";  
  19. }  

该程序的输出结果如图2-5所示。
 

2. 共用体(union)

C++语言中,不同数据类型的数据可以使用共同的存储区域,这种数据构造类型称为共用体,简称共用,又称联合体。共用体在定义、说明和使用形式上与结构体相似。两者本质上的不同仅在于使用内存的方式上。

1) 共用体的定义

定义一个共用体类型的一般形式为:

  1. union 共用体名  
  2. {  
  3.         成员表列;  
  4. };  

例如:

  1. union gy  
  2.     {  
  3.        int i;  
  4.        char c;  
  5.        float f;  
  6.     };  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.1.3 构造数据类型(3) 下一篇2.1.3 构造数据类型(5)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: