第11章结构体和共用体 11.3结构体变量的引用 四项原则 ☆不能整体输入输出,只能对各个成员分别引用。 结构体变量名.成员名(成员运算符”.") ◆如果成员本身又属于一个结构体类型,则用多个成员运算符, 级一级地找到最低一级的成员,只能对最低一级的成员进行赋值、 存取及运算。 例如: struct date struct student int month char name [20] int day: char sex. int year int age; struct date birthday stul, stu2. stul birthday. month 1
-6- 第11章 结构体和共用体 11.3 结构体变量的引用 四项原则 v 不能整体输入输出,只能对各个成员分别引用。 结构体变量名.成员名 (成员运算符".") v 如果成员本身又属于一个结构体类型,则用多个成员运算符,一 级一级地找到最低一级的成员,只能对最低一级的成员进行赋值、 存取及运算。 例如: struct date { int month; int day; int year; }; struct student { char name[20]; char sex; int age; struct date birthday; }; stu1, stu2; stu1.birthday.month = 1;
第11章结构体和共用体 11.3结构体变量的引用 ◆对成员变量可以像普通变量一样进行各种运算。 例如: stul, num + 可以引用成员的地址,也可以应用结构体变量的地址。 例如: scanf("%d",&stul num) pr intf("‰o",&stu1); 但不能用以下语句整体读入结构体变量, 例如: scanf(“%s,‰c,%d,”,&stu1);//错误
-7- 第11章 结构体和共用体 11.3 结构体变量的引用 v 对成员变量可以像普通变量一样进行各种运算。 例如: stu1.num ++; v 可以引用成员的地址,也可以应用结构体变量的地址。 例如: scanf("%d", &stu1.num); printf("%o ", &stu1); 但不能用以下语句整体读入结构体变量, 例如: scanf(“%s, %c, %d, ”, &stu1); //错误
第11章结构体和共用体 11.4结构体变量的初始化 结构体变量和其它类型变量一样,可以在定义时指定初始值。 例11.1:对结构体变量的初始化。 i inc ude <stdio. h> void main struct student char name [20] char sex Int age; }a={" Li Lin","M',23}; pr intf("name:%s\nsex:‰cⅦnage:%Ⅷn",a.name,a.sex,a.gae);
-8- 第11章 结构体和共用体 11.4 结构体变量的初始化 结构体变量和其它类型变量一样,可以在定义时指定初始值。 例11.1:对结构体变量的初始化。 #include <stdio.h> void main() { struct student { char name[20]; char sex; int age; } a = {"Li Lin ", 'M', 23}; printf(" name: %s\n sex:%c\n age:%d\n ",a.name, a.sex, a.gae); }
第11章结构体和共用体 11.5结构体数组 定义结构体数组 只要说明该结构体变量为数组类型,则每个数组元素都是一个结构体 类型数据。 例如 struct student char name [20] char sex int age stu[3]*/ struct student stu[3]
-9- 第11章 结构体和共用体 11.5 结构体数组 定义结构体数组 只要说明该结构体变量为数组类型,则每个数组元素都是一个结构体 类型数据。 例如: struct student { char name[20]; char sex; int age; }; /* stu[3] */ struct student stu[3];
第11章结构体和共用体 11.5结构体数组 结构体数组的初始化 ☆一般形式: 在定义数组的后面加上:={初值表列; struct student char name [20] char sex: int age; }stu[3]=[{" Li Lin","M',23}, [Wang nan",F, 21] [" Liu li","F',22} ◆定义数组时,元素个数可以不指定,编译时系统会根据给出初值 的结构体常量的个数来确定数组元素的个数。 10
-10- 第11章 结构体和共用体 11.5 结构体数组 结构体数组的初始化 v 一般形式: 在定义数组的后面加上: ={初值表列}; v 定义数组时,元素个数可以不指定,编译时系统会根据给出初值 的结构体常量的个数来确定数组元素的个数。 struct student { char name[20]; char sex; int age; } stu[3] = {{"Li Lin ", 'M', 23}, {"Wang nan ", 'F', 21}, {"Liu Li", 'F', 22} };