清华大学出版社 TSINGHUA UNIVERSITY PRESS 赋值,例如: student1.num=10010; “.”是成员(分量)运算符,它在所有的运算符中优先级 最高,因此可以把student1.num作为一个整体来看 待。上面赋值语句的作用是将整数10010赋给 student1变量中的成员num。 (2)如果成员本身又属一个结构体类型,则要用若千 个成员运算符,一级一级地找到最低的一级的成员。 只能对最低级的成员进行赋值或存取以及运算。 例如,对上面定义的结构体变量student1,可以这样 访问各成员: studentl.num
赋值,例如: student1.num=10010; “.”是成员(分量)运算符,它在所有的运算符中优先级 最高,因此可以把student 1.num作为一个整体来看 待。上面赋值语句的作用是将整数10010赋给 student 1变量中的成员num。 (2) 如果成员本身又属一个结构体类型,则要用若干 个成员运算符,一级一级地找到最低的一级的成员。 只能对最低级的成员进行赋值或存取以及运算。 例如,对上面定义的结构体变量student1, 可以这样 访问各成员: student1.num
清华大学出版社 TSINGHUA UNIVERSITY PRESS student1.birthday.month 注意:不能用student1.birthday来访问student1变量中的成员 birthday,因为birthday本身是一个结构体变量。 (3)对结构体变量的成员可以像普通变量一样进行各种运算 (根据其类型决定可以进行的运算)。例如: student2.score=student1.score; sum=student1.score+student2.score; student1.age++; ++student1.age; 由于“.”运算符的优先级最高,因此studentl.age++是对 student1.age进行自加运算,而不是先对age进行自加运 算。(4)可以引用结构体变量成员的地址,也可以引用结 构体变量的地址。如:scanf("%d",&studentl.num);(输 入student1.num的值)printf("%o",&student1);(输出
student1.birthday.month 注意:不能用student1.birthday来访问student1变量中的成员 birthday,因为birthday本身是一个结构体变量。 (3) 对结构体变量的成员可以像普通变量一样进行各种运算 (根据其类型决定可以进行的运算)。例如: student2.score=student1.score; sum=student1.score+student2.score; student1.age++; ++student1.age; 由于“.”运算符的优先级最高,因此student1.age++是对 student1.age进行自加运算,而不是先对age进行自加运 算。(4) 可以引用结构体变量成员的地址,也可以引用结 构体变量的地址。如:scanf("%d",&student1.num); (输 入student1.num的值)printf("%o",&student1); (输出
清华大学出版社 TSINGHUA UNIVERSITY PRESS student1的首地址)但不能用以下语句整体读入结构体变量, 如: scanf("%d,%s,%c,%d,%f,%s",&student1); 结构体变量的地址主要用于作函数参数,传递结构体的地址。 11.4结构体变量的初始化 和其他类型变量一样,对结构体变量可以在定义时 指定初始值。 例11.1对结构体变量初始化
student1的首地址)但不能用以下语句整体读入结构体变量, 如: scanf("%d,%s,%c,%d,%f,%s",&student1); 结构体变量的地址主要用于作函数参数,传递结构体的地址。 11.4 结构体变量的初始化 和其他类型变量一样,对结构体变量可以在定义时 指定初始值。 例11.1对结构体变量初始化
清华大学出版社 TSINGHUA UNIVERSITY PRESS mainO struct student {long int num; char name[20]; char sex; char addr[20]; }a=(89031,"Li Lin",'M',"123 Beijing Road"}; printf("NO.:%ld\nname:%s\nsex:%c\naddress: s\n",a.num,a.name,a.sex,a.addr);
main() {struct student {long int num; char name[20]; char sex; char addr[20]; }a={89031,"Li Lin",'M',"123 Beijing Road"}; printf("NO.:%ld\nname:%s\nsex:%c\naddress:% s\n",a.num,a.name,a.sex,a.addr); }
清华大学出版社 TSINGHUA UNIVERSITY PRESS 运行结果如下: No.:89031 name: Li Lin sex:M address:123 Beijing Road 11.5 结构体数组 一个结构体变量中可以存放一组数据(如一个学生的 学号、姓名、成绩等数据)。如果有10个学生的数 据需要参加运算,显然应该用数组,这就是结构体 数组。结构体数组与以前介绍过的数值型数组不同 之处在于每个数组元素都是一个结构体类型的数
运行结果如下: No.:89031 name:Li Lin sex:M address:123 Beijing Road 11.5 结构体数组 一个结构体变量中可以存放一组数据(如一个学生的 学号、姓名、成绩等数据)。如果有10个学生的数 据需要参加运算,显然应该用数组,这就是结构体 数组。结构体数组与以前介绍过的数值型数组不同 之处在于每个数组元素都是一个结构体类型的数