清华大学出版社 TSINGHUA UNIVERSITY PRESS §11.2定义结构体类型变量的方法 ■可以采取以下3种方法定义结构体类型变 (1)先声明结构体类型再定义变量名 例如: struct student student 1, student2; student1 100102 WangLi F 2098 Beijing student2 100101 Zhang XiT M 19 90.5 Shanghai 图11-2
§11.2 定义结构体类型变量的方法 ◼ 可以采取以下3种方法定义结构体类型变 量: (1)先声明结构体类型再定义变量名 例如:struct student student1, student2; | | | 结构体类型名 结构体变量名 定义了student1和student2为struct student 类型的变量,即它们具有struct student 类型的结构. 图11-2 student1 100101 ZhangXin M 19 90.5 Shanghai 100102 WangLi F 20 98 Beijing student2
清华大学出版社 TSINGHUA UNIVERSITY PRESS §11.2定义结构体类型变量的方法 在定义了结构体变量后,系统会为之分配内 存单元。 例如: student1和 Student2在内存中各占59个 字节(2+20+1+2+4+30=59)。 注意 将一个变量定义为标准类型(基本数据类型)与 定义为结构体类型不同之处在于后者不仅要求指定 变量为结构体类型,而且要求指定为某一特定的结 构体类型,因为可以定义出许许多多种具体的结构 体类型
§11.2 定义结构体类型变量的方法 在定义了结构体变量后,系统会为之分配内 存单元。 例如:student1和student2在内存中各占59个 字节(2+20+1+2+4+30=59)。 注意: 将一个变量定义为标准类型(基本数据类型)与 定义为结构体类型不同之处在于后者不仅要求指定 变量为结构体类型,而且要求指定为某一特定的结 构体类型,因为可以定义出许许多多种具体的结构 体类型
清华大学出版社 TSINGHUA UNIVERSITY PRESS §11.2定义结构体类型变量的方法 (2)在声明类型的同时定义变量 这种形式的定义的一般形式为 struct结构体名 成员表列 }变量名表列
§11.2 定义结构体类型变量的方法 (2)在声明类型的同时定义变量 这种形式的定义的一般形式为: struct 结构体名 { 成员表列 }变量名表列;
清华大学出版社 TSINGHUA UNIVERSITY PRESS §11.2定义结构体类型变量的方法 例如: 它的作用与第 struct student 种方法相同,即 定义了两个 truct int num student类型的变 char name [201 量 studentI, char sex student2 Int age float score char addr[301 student1, student2
§11.2 定义结构体类型变量的方法 例如: struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }student1,student2; 它的作用与第一 种方法相同,即 定义了两个struct student 类型的变 量student1, student2
清华大学出版社 TSINGHUA UNIVERSITY PRESS §1.2定义结构体类 注意 (3)直接定义结构体类型2)对结构体中的成员( 其一般形式为 即“域”),可以单独 struct 使用,它的作用与地位 相当于普通变量。 成员表列 (3)成员也可以是一个结 }变量名表列;构体变量。 即不出现结构体名 (4)成员名可以与程序 中的变量名相同,二者不 代表同一对象
§11.2 定义结构体类型变量的方法 (3) 直接定义结构体类型变量 其一般形式为: struct { 成员表列 }变量名表列; 即不出现结构体名。 注意: (1) 类型与变量是不同 的概念,不要混同。只 能对变量赋值、存取或 运算,而不能对一个类 型赋值、存取或运算。 在编译时,对类型是不 分配空间的,只对变量 分配空间。 注意: (2)对结构体中的成员( 即“域”),可以单独 使用,它的作用与地位 相当于普通变量。 (3)成员也可以是一个结 构体变量。 (4) 成员名可以与程序 中的变量名相同,二者不 代表同一对象