清华大学出版社 TSINGHUA UNIVERSITY PRESS 3.直接定义结构类型变量 其一般形式为 struct 成员表列 }变量名表列;即不出现结构体名。 关于结构体类型,有几点要说明: (1)类型与变量是不同的概念,不要混同。只能对变 量赋值、存取或运算,而不能对一个类型赋值、 存取或运算。在编译时,对类型是不分配空间的, 只对变量分配空间
3. 直接定义结构类型变量 其一般形式为 struct { 成员表列 }变量名表列;即不出现结构体名。 关于结构体类型,有几点要说明: (1) 类型与变量是不同的概念,不要混同。只能对变 量赋值、存取或运算,而不能对一个类型赋值、 存取或运算。在编译时,对类型是不分配空间的, 只对变量分配空间
清华大学出版社 TSINGHUA UNIVERSITY PRESS (2)对结构体中的成员(即“域”),可以单独使用, 它的作用与地位相当于普通变量。关于对成员的 引用方法见13节。 (3)成员也可以是一个结构体变量 如 struct date/声明一个结构体类型*/ Rint month; int day; int year; struct student
(2) 对结构体中的成员(即“域”),可以单独使用, 它的作用与地位相当于普通变量。关于对成员的 引用方法见11.3节。 (3) 成员也可以是一个结构体变量。 如: struct date /*声明一个结构体类型*/ {int month; int day; int year; }; struct student
清华大学出版社 TSINGHUA UNIVERSITY PRESS Rint num char name 20: char sex: int age; struct date birthday; /*birthday struct date 类型* char addr 30]: studenti, student2; 先声明一个 struct date类型,它代表“日期”,包 括3个成员: month(月)、day(日)、year(年)。然后 在声明 struct student类型时,将成员 birthday
{int num; char name[20]; char sex; int age; struct date birthday; /*birthday是struct date 类型*/ char addr[30]; }student1,student2; 先声明一个struct date类型,它代表“日期”,包 括3个成员:month(月)、day(日)、year(年)。然后 在声明struct student类型时,将成员birthday
清华大学出版社 TSINGHUA UNIVERSITY PRESS 指定为 struct date类型。 struct student的结构见图 13所示。已声明的类型 struct date与其他类型(如 int,char)一样可以用来定义成员的类型。 num name sex age birthday addr month day year 图 11.3 (4)成员名可以与程序中的变量名相同,二者不代表同 对象。例如程序中可以另定义一个变量mum它 与 struct studen中的mum是两回事,互不干扰
指定为struct date类型。struct student的结构见图 11.3所示。已声明的类型struct date与其他类型(如 int,char)一样可以用来定义成员的类型。 (4)成员名可以与程序中的变量名相同,二者不代表同 一对象。例如,程序中可以另定义一个变量num,它 与struct student中的num是两回事,互不干扰。 图11.3
清华大学出版社 TSINGHUA UNIVERSITY PRESS 113结构体变量的引用 在定义了结构体变量以后,当然可以引用这个变量。 但应遵守以下规则: (1)不能将一个结构体变量作为一个整体进行输入和 输出。例如已定义 studen1和 Student2为结构体变 量并且它们已有值。不能这样引用: printf (od, %S, %C, %d, %f, %osn", student); 只能对结构体变量中的各个成员分别进行输入和输 出。引用结构体变量中成员的方式为 结构体变量名成员名 例如: student1num表示 studen变量中的num成员 即 studen1的nm(学号)项。可以对变量的成员
11.3 结构体变量的引用 在定义了结构体变量以后,当然可以引用这个变量。 但应遵守以下规则: (1) 不能将一个结构体变量作为一个整体进行输入和 输出。例如,已定义student1和student2为结构体变 量并且它们已有值。不能这样引用: printf ("%d,%s,%c,%d,%f,%s\n",student1); 只能对结构体变量中的各个成员分别进行输入和输 出。引用结构体变量中成员的方式为 结构体变量名.成员名 例如: student1.num表示student1变量中的num成员, 即student1的num(学号)项。可以对变量的成员