全国计算机二级C语言程序设计讲义 结构体.ppt
文本预览下载声明
第10讲 结构体 一、结构体类型 二、结构体变量 三、结构体变量的引用 四、结构体变量的初始化 五、结构体数组 结构体类型的数据由数目固定,类型不同的若干成员构成,在内存中占有一段连续的存储空间。不同的结构体类型其成员不同。 在程序中使用结构体,必须先做两项工作: 1)定义结构体类型:描述该结构体的成员名称、成员类型。 2)定义结构体类型变量:根据结构体类型位为定义的结构体变量分配存储空间。 一、结构体类型 结构体类型声明的格式为: struct 结构体名 { 类型名1 结构成员名1 ; 类型名2 结构成员名2 ; ··· 类型名n 结构成员名n ; } ; 结构体类型声明的格式说明: struct:关键字,是定义结构体类型的标志。 结构体名:用户定义的结构体类型名,其命名规则同变量名。 类型名1~n:说明了结构成员的类型。 结构成员名1~n:用户定义的一个或多个结构体成员的名称,其命名规则同变量名。多个同类型的成员彼此间用逗号分隔。 定义举例 (1) struct date { int year, month, day ; } ; (2) struct student { char name[8]; int score[2], burse ; int year, month, day ; } ; 二、结构体变量 结构体类型的变量的定义方式: (1)先声明结构体类型,再定义结构体类型的变量。 (2)在声明结构体类型的同时定义结构体类型的变量。 (3)直接定义结构体类型的变量。 方式(1) 若事先已声明了结构体类型,那么直接用下面格式定义结构体变量。 struct 结构体名 结构体变量名; 例:struct date yesterday ; 存储形式 : yesterday day month year 2字节 2字节 2字节 方式(2) 在声明结构体类型的同时定义结构体类型的变量。定义格式为: struct 结构体名 { 类型名1 结构成员名1 ; 类型名2 结构成员名2 ; ··· 类型名n 结构成员名n ; } 结构体变量名表 ; 例:struct student { char name[8]; int score[2], burse ; int year, month, day ; } tongxue1, gongxue2; 存储形式: 2字节 burse 2字节 2字节 2字节 2字节 2字节 8字节 day month year score[1] score[0] name[8] 方式(3) 在声明结构体类型时可以直接定义结构体变量,其定义格式为: struct { 类型名1 结构成员名1 ; 类型名2 结构成员名2 ; ··· 类型名n 结构成员名n ; }结构体变量名表 ; 例:struct birthday { int year, month, day ; } ; struct { char name[8]; int score[2], burse ; struct birthday csny ; } tongxue1, tongxue2; 存储形式: day month year 2字节 burse 2字节 2字节 2字节 2字节 2字节 8字节 brithday score[1] score[0] name[8] 关于结构体的说明: 类型与变量是不同的概念,注意区分。 系统可以对变量赋值、存取、运算,而类型则不能。 编译时,系统只对变量分配存贮空间,而类型则不分配 结构体中的成员(即域)也可以是一个结构体变量,即结构体的嵌套。 结构体中的成员名可以和程序中的变量同名;不同结构体中的成员名也可以同名。 三、结构体变量的引用 结构体变量的引用方式为: 结构体变量名.成员名 其中 .:为结构体成员运算符,1级运算符。 结构体变量的引用规则: 例:struct student { char name[8]; int
显示全部