第11章结构体与共用体 §11结构体 但结构体是一种构造数据类型 「用途:把不同类型的数据组合成一个整体 自定义数据类型 ★结构体类型定义 合法标识符 可省:无名结构体 struct[结构体名 类型标识符成员名 类型标识符成员名; 成员类型可以是 struct是关键字, 基本型或构造型 不能省略
第11章 结构体与共用体 §11.1 结构体 &结构体是一种构造数据类型 &用途:把不同类型的数据组合成一个整体------- 自定义数据类型 «结构体类型定义 struct [结构体名] { 类型标识符 成员名; 类型标识符 成员名; ……………. }; 成员类型可以是 struct是关键字, 基本型或构造型 不能省略 合法标识符 可省:无名结构体
num 2字节 name 20字节 例 struct student seX 字节 int num ge 2字节 char name[20] char sex score 4字节 Int age float score, char addr301 addr 30字节 结构体类型定义描述结构 的组织形式不分配内存 结构体类型定义的作用域
例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; name num sex age score addr 2字节 2字节 20字节 1字节 4字节 30字节 … ….. 结构体类型定义描述结构 的组织形式,不分配内存 结构体类型定义的作用域
§1.2结构体变量的定义 ★先定义结构体类型,再定义结构体变量 ◆一般形式 struct结构体名 类型标识符成员名; 类型标识符成员名 例 struct student struct结构体名变量名表列 int num char name [20 char sex Int age float score char addr 30 struct student stul stu2
例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct student stu1,stu2; §11.2 结构体变量的定义 «先定义结构体类型,再定义结构体变量 v一般形式: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }; struct 结构体名 变量名表列;
★定义结构体类型的同时定义结构体变量 般形式 struct结构体名 类型标识符成员名; 类型标识符成员名 }变量名表列; 例 struct student i int num char name [ 20] char sex Int age float score char addr301 jstl, stu2
«定义结构体类型的同时定义结构体变量 一般形式: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列; 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2;
★直接定义结构体变量 般形式 struct 类型标识符成员名; 类型标识符成员名 }变量名表列; 例 struct i int num 用无名结构体直接定义 char name [ 20] 变量只能一次 char sex Int age float score char addr301 jstl, stu2
«直接定义结构体变量 一般形式: struct { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列; 例 struct { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; 用无名结构体直接定义 变量只能一次