全站搜索未启用
跳到主要内容

文本一:结构类型的定义

1. 结构的概念

结构、联合、数组都属于复合数据类型。

数组包含有多个元素(element),每个元素具有同一数据类型。

结构包含有多个成员(member),每个成员可以具有不同的数据类型。

数组用来表示同一类型的一批数据,结构用来表示不同类型的相关数据。

结构是一种复合(组合)数据类型,可以包含多个不同类型的数据成员(域)。

职工类型:(职工号, 姓名, 年龄, 职务, 基本工资)。

一个职工类型中的值:{"0238", "刘放", 45, "副教授", 4450.00}

2. 结构类型的定义格式

struct <结构类型名> //结构头

{   //结构体
  <成员类型1>  <成员名1>; 
  <成员类型2>  <成员名2>; 
  …
  <成员类型n>  <成员名n>; 
};

每个数据成员的定义用分号结束,每个数据成员的定义由类型名和成员名组成。整个结构定义的最后用一个分号结束。结构类型也有作用域。

3. 结构类型定义格式举例

(1) struct AA {    //类型长度为12
      int a,b,c;
    };
(2) struct BB {    //理论长度为17
      char ch;     //1字节
      int x,y;     //2*4=8字节
      double z;    //8字节
    };             //物理长度为sizeof(struct BB)>=20
(3) struct CC {    //理论长度为24
       char *cp; 
       int a[5];
    };            //物理长度为sizeof(struct CC)>=24
(4) struct DD {
       int *a;
       int *ap;
       int maxsize;
    };
(5) struct EE {  //允许含有其他结构类型的成员
      int d, *e;
      struct BB rec;  //成员也可以是结构
    };
(6) struct FF {    //允许含有指向本身结构类型的指针成员
      double data;
      struct FF *next;
    };  //理论长度为12

4.利用typedef语句定义结构类型的别名

struct node {int data; struct node *next;};
typedef struct node NodeType;  
  //定义NodeType为struct node的别名
NodeType x,y;  等价于:struct node x,y;
最后修改: 2019年09月26日 Thursday 19:08