结构体的嵌套 ◇在定义结构体类型时,可以利用已定义的另一个 结构体类型来定义其成员 struct dateint month 定义了名为date 的结构体类型 int dayE int yeari birthday struct personint numE 结构体类型成员 char name[8; struct date birthday; ] 定义了名为date 的结构体类型
结构体的嵌套 在定义结构体类型时,可以利用已定义的另一个 结构体类型来定义其成员。 例: struct date{int month; int day; int year;}; struct person{int num; char name[8]; struct date birthday; }; 定义了名为date 的结构体类型 birthday 是一个 结构体类型成员 定义了名为date 的结构体类型
结构体变量的初始化 ◇一般可在定义结构体变量的同时进行初始化: 例 struct person student=【张小 12,15,1982} ◇与数组不同,不能直接用常量对结构体变量进 初始化: 例: struct person student student【张小三”,12,15,19823
结构体变量的初始化 一般可在定义结构体变量的同时进行初始化: 例: struct person student={“张小三” , 12,15,1982}; 与数组不同,不能直接用常量对结构体变量进行 初始化: 例: struct person student; student={“张小三” ,12,15,1982};
结构体变量的引用 结构体变量名结构体变量的成员 ◇引用一级成员: student, num 引用多级成员(成员的成员) student birthday year 结构体变量名皆构体变量的成员成员的成员 ◆可以将一个结构体变量的值作为一个整体赋给另 结构体变量
结构体变量的引用 引用一级成员: student.num 引用多级成员(成员的成员): student.birthday.year 结构体变量名 结构体变量的成员 结构体变量名 结构体变量的成员 成员的成员 可以将一个结构体变量的值作为一个整体赋给另 一个结构体变量
结构体变量的输入、输出 ◇C中不允许将结构体变量作为一个整体进行输入、 输出。 只能输入或输出最末级成员。 Agi: scanf(%d student num) scanf( d,, student birthday year) printf(%d,student num); printf( d, student, birthday year 例L71.0输出结构体变量各元素。 例L7-1输入、输出结构体变量各元素
结构体变量的输入、输出 C中不允许将结构体变量作为一个整体进行输入、 输出。 只能输入或输出最末级成员。 例:scanf(“%d”,student.num); scanf(“%d”, student.birthday.year); printf(“%d”,student.num); printf(“%d”, student.birthday.year); 例L7-1-0 输出结构体变量各元素。 例L7-1 输入、输出结构体变量各元素
7-3结构体数组 ◇结构体数组的定义 ◇在结构体变量的定义基础上增加下标即可。 ◇结构体数组的初始化 ◇与普通数组相似,但要求一定要用花括号将每个数组 元素的的数据括起来。 ◆结构体数组的引用 ◇在结构体变量名的引用基础上,在结构体变量名后加 下标即可。其它与结构体变量相同。 汪意: 般不要在一个 scant0中接收不同的数据类型,否则 可能出现难以预料的错误。 >尽量使用gets0读取用户输入的字符串 例L7-2定义、初始化结构体数组,并输出各元素
7-3 结构体数组 结构体数组的定义 在结构体变量的定义基础上增加下标即可。 结构体数组的初始化 与普通数组相似,但要求一定要用花括号将每个数组 元素的的数据括起来。 结构体数组的引用 在结构体变量名的引用基础上,在结构体变量名后加 下标即可。其它与结构体变量相同。 注意: ➢一般不要在一个scanf()中接收不同的数据类型,否则 可能出现难以预料的错误。 ➢尽量使用gets()读取用户输入的字符串。 例L7-2 定义、初始化结构体数组,并输出各元素