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