对结构体类型的说明 4)成员名可以与程序中的变量名相同,二者不代 表同一对象。例如,程序中可以另定义一个变量 num,它与struct student中的num是两回事,互不千扰
对结构体类型的说明 4)成员名可以与程序中的变量名相同,二者不代 表同一对象。例如,程序中可以另定义一个变量 num,它与struct student中的num是两回事,互不干扰
(三)结构体变量的引用
(三)结构体变量的引用
结构体变量的引用 在定义了结构体变量以后,当然可以引用这个变量。但应遵守以下 规则 1)不能将一个结构体变量作为一个整体进行输入和输出。例如 已定义student1和student2为结构体变量并且它们已有值。不能这 样角: printf ("d,s,%c,d,of,%os n",student1); 只能对结构体变量中的各个成员分别进行输入和输出。 引用结构体变量中成员的方式为: 结构体变量名,成员名 例如:student1l:num表示student1变量中的num成员,即student1的 num(学号)项。可以对变量的成员赋值,例如: student1.num=10010; 注意:“”是成员(分量)运算符,它在所有的运算符中优先级最高。 因此可以把student1.num作为二个整体来看待
结构体变量的引用 在定义了结构体变量以后,当然可以引用这个变量。但应遵守以下 规则: 1)不能将一个结构体变量作为一个整体进行输入和输出。例如, 已定义student1和student2为结构体变量并且它们已有值。不能这 样引用: printf ("%d,%s,%c,%d,%f,%s\n",student1); 只能对结构体变量中的各个成员分别进行输入和输出。 引用结构体变量中成员的方式为: 结构体变量名.成员名 例如: student1.num表示student1变量中的num成员,即student1的 num(学号)项。可以对变量的成员赋值,例如: student1.num=10010; 注意:“.”是成员(分量)运算符,它在所有的运算符中优先级最高。 因此可以把student1.num作为一个整体来看待
结构体变量的引用 2)如果成员本身又属一个结构体类型,则要用若干个成 员运算符,一级一级地找到最低的一级的成员。只能对最 低级的成员进行赋值或存取以及运算。 例如,对上面定义的结构体变量student1?,可以这样访问各 成员: student1.num student1.birthday.month 注意:不能用student1.birthday来访问student1变量中的成员 birthday,因为birthday本身是一个结构体变量
结构体变量的引用 2)如果成员本身又属一个结构体类型,则要用若干个成 员运算符,一级一级地找到最低的一级的成员。只能对最 低级的成员进行赋值或存取以及运算。 例如,对上面定义的结构体变量student1, 可以这样访问各 成员: student1.num student1.birthday.month 注意:不能用student1.birthday来访问student1变量中的成员 birthday,因为birthday本身是一个结构体变量
结构体变量的引用 3)对结构体变量的成员可以像普通变量一样进行各种 运算(根据其类型决定可以进行的运算)。例如: student2.score student1.score; sum=student1.score+student2.score; student1.age++; ++studentl.age; 4)可以引用结构体变量成员的地址,也可以引用结构 体变量的地址。如: scanf(od',&student1.num;/输入student1.num的值 printf("oo”,&student1);/输出student1的首地址 但不能用以下语句整体读入结构体变量,如: scanf('ood,os,oc,od,%f,os”,&student1月
结构体变量的引用 3)对结构体变量的成员可以像普通变量一样进行各种 运算(根据其类型决定可以进行的运算)。例如: student2.score = student1.score; sum=student1.score+student2.score; student1.age++; ++student1.age; 4)可以引用结构体变量成员的地址,也可以引用结构 体变量的地址。如: scanf(“%d”,&student1.num); //输入student1.num的值 printf(“%o”, &student1); //输出student1的首地址 但不能用以下语句整体读入结构体变量,如: scanf(“%d,%s,%c,%d,%f,%s”, &student1);