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