第八章结构及其它 本章的主要内容包括: ◆C语言的类型定义 ◆结构 ◆联合 ◆位运算和位段 回首页
本章的主要内容包括: C语言的类型定义 结构 联合 位运算和位段 第八章 结构及其它 回首页
8.1类型定义 写程序时自己定义的数据类型称作“用户定义类型” 形式: typedef类型名标识符; typedef的作用仅仅是用新类型名来代表已存在的类型名,并未产 生新的数据类型。原有的类型名依然有效。 新的类型名可以和C语言中原有的各种基本类名一样,方便地用于 定义变量、定义函数的返回值、定义其它构造类型的元素或成 员 B8. 1: typedef int INTEGER 给int类型一个新的名字 INTEGER,此后,可以用 INTEGER来定义整 型变量。如: INTEGER i,j,a[10]; 28. 2: typedef char CHARP 新类型名 CHARP是字符指针类型,表示的旧类型是char*。 CHaRP p 等价于:char*p; 198. 3: typedef double VECT[4] 定义一种具有4个元素的双精度数组类型VECT;程序中VECT V1,v2;定义两个4个元素的双精度数组
写程序时自己定义的数据类型称作“用户定义类型”。 形式: typedef 类型名 标识符; typedef的作用仅仅是用新类型名来代表已存在的类型名,并未产 生新的数据类型。原有的类型名依然有效。 新的类型名可以和C语言中原有的各种基本类名一样,方便地用于 定义变量、定义函数的返回值、定义其它构造类型的元素或成 员。 例8.1:typedef int INTEGER; 给int类型一个新的名字INTEGER,此后,可以用INTEGER来定义整 型变量。如:INTEGER i,j,a[10]; 例8.2:typedef char * CHARP; 新类型名CHARP是字符指针类型,表示的旧类型是char *。 CHARP p; 等价于: char *p; 例8.3:typedef double VECT[4]; 定义一种具有4个元素的双精度数组类型VECT;程序中 VECT v1,v2;定义两个4个元素的双精度数组。 8.1 类型定义
8.1类型定义 定义新类型的步骤 (1)首先按通常定义变量的方法写出定义的主体;如: double xf. (2)将变量名换成新类型名; double DoubLe (3)在最前面加上关键字 typedef typedef double doubLe (4)可以用新类型定义变量了; PDOUBLE flf2 讨论自定义数据类型的作用
定义新类型的步骤: (1) 首先按通常定义变量的方法写出定义的主体;如: double *f; (2) 将变量名换成新类型名; double *PDOUBLE; (3) 在最前面加上关键字typedef; typedef double *PDOUBLE; (4) 可以用新类型定义变量了; PDOUBLE f1,f2; 讨论自定义数据类型的作用 8.1 类型定义
8.2结构 结构可以将若干个不同类型的数据组合成一个复合数据对象。组 成结构的数据项称结构的成分或成员。 结构类型成员的数量必须固定,但该结构中各个成员的类型可以 不同。 8.21结构类型说明、结构变量定义 ●8.2.1.1结构类型说明 struct结构名{成员说明序列}; 结构名是结构类型说明的标志,如果所定义的结构类型,在程序 中很少使用,可以省略结构名,在说明类型的同时定义结构变 量;如果所定义的结构类型,在程序中要多次使用,应该使用 结构名说明结构类型,以后在程序需要该结构类型的地方,用 “ struc t结构名”的形式代表整个说明。相当于一个类型名
结构可以将若干个不同类型的数据组合成一个复合数据对象。组 成结构的数据项称结构的成分或成员。 结构类型成员的数量必须固定,但该结构中各个成员的类型可以 不同。 8.2.1 结构类型说明、结构变量定义 8.2.1.1 结构类型说明 struct 结构名 {成员说明序列}; 结构名是结构类型说明的标志,如果所定义的结构类型,在程序 中很少使用,可以省略结构名,在说明类型的同时定义结构变 量;如果所定义的结构类型,在程序中要多次使用,应该使用 结构名说明结构类型,以后在程序需要该结构类型的地方,用 “struct 结构名”的形式代表整个说明。相当于一个类型名。 8.2 结构
8.2结构 例日期可以用包含三个成员的结构来描述: struct date t int year, month, day: 学生信息的结构类型可说明如下: struct student i char name [ 15] char sex: struct date birthday float score 4 其中 struct date是一个已说明过的结构类型名
例日期可以用包含三个成员的结构来描述: struct date { int year, month, day; }; 学生信息的结构类型可说明如下: struct student { char name[15]; char sex; struct date birthday; float score[4]; }; 其中struct date是一个已说明过的结构类型名。 8.2 结构