设为首页 加入收藏

TOP

2.1.3 构造数据类型(3)
2013-11-12 22:25:11 来源: 作者: 【 】 浏览:103
Tags:2.1.3 构造 数据 类型

2.1.3  构造数据类型(3)

3) 结构体变量的使用形式和初始化

(1) 结构体变量的使用形式

定义了结构体变量后,就可以使用这个变量。结构体变量是不同数据类型的若干数据的集合体。在程序中使用结构体变量时,一般情况下不能将其作为一个整体参加数据处理,而参加各种运算和操作的是结构体变量的各个成员项数据。

结构体变量的成员用以下一般形式表示:

  1. 结构体变量名.成员名 

例如,上节给出的结构体变量worker1具有下列7个成员:
 

  1. worker1.number;worker1.name;worker1.sex;worker1.age;worker1.salary;worker1.address;worker1.phone 

定义结构体变量后,就可以用不同的赋值方法对结构体变量的每个成员赋值。如下所示:
 

  1. strcpy(worker1.name,"Zhang San");  
  2.     worker1.age=26;  
  3.     strcpy(worker1.phone,"1234567");  
  4.     worker1.sex='m';  

除此之外,还可以引用结构体变量成员的地址以及成员中的元素。例如:引用结构体变量成员的首地址&worker1.name;引用结构体变量成员的第二个字符worker1.name[1];引用结构体变量的首地址&worker1。

在使用结构体类型变量时有以下几点需要加以注意。

不能将一个结构体类型变量作为一个整体加以引用,只能对结构体类型变量中的各个成员分别引用。

例如,对上面定义的结构体类型变量wan,下列引用都是错误的:
 

  1. cout<<wan;  
  2.     cin>>wan;  

但是可以如下引用:

  1. cout<<wan.name;  
  2.     cin>>wan.name;  

如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级成员。只能对最低级的成员进行赋值或存取以及运算。例如,对上面定义的结构体类型变量worker1,可以这样访问各成员:

  1. worker1.age  
  2. worker1.name  
  3. worker1.birthday.year  
  4. worker1.birthday.month  
  5. worker1.birthday.day  

注意:

不能用worker1.birthday来访问worker1变量中的成员birthday,因为birthday本身是一个结构体变量。

对成员变量可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。如下所示:
 

  1. worker2.age=worker1.age;  
  2.     sum=worker1.age+worker2.age;  
  3.     worker1.age++;  

在数组中,数组是不能彼此赋值的,而结构体类型变量可以相互赋值。

C++程序中,同一结构体类型的结构体变量之间允许相互赋值,不同结构体类型的结构体变量之间不允许相互赋值,即使两者包含有同样的成员。
 

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

评论

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