结构体变量的引用 成员(分量)运算符 优先级:1 引用规则 结合性:从左向右 ·结构体变量不能整体引用,只能引用变量成员 引用方式:结构体变量名成员名 ◆可以将一个结构体变量赋值给另一个结构体变量 ◆结构体靛套时逐级引用 例 struct student i int num char name[20] char sex: int age; float score Stu2= stul;( char addr[30] Jstl, stu2
结构体变量的引用 – 引用规则 • 结构体变量不能整体引用,只能引用变量成员 ❖可以将一个结构体变量赋值给另一个结构体变量 ❖结构体嵌套时逐级引用 成员(分量)运算符 优先级: 1 结合性:从左向右 引用方式: 结构体变量名.成员名 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; Stu2 = stu1; ( )
结构体变量的初始化 常用形式:strt结构体名 类型标识符成员名 类型标识符成员名; struct结构体名结构体变量={初始数据}; 例 struct student i int num char name [20]; int score 3]: i struct student s1=(1, Zhang San, 85, 90, 100"1 定义变量时就初始化
结构体变量的初始化 – 常用形式: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }; struct 结构体名 结构体变量={初始数据}; 例 struct student { int num; char name[20]; int score[3]; }; struct student s1 = {1,“Zhang San”,85,90,100”}; 定义变量时就初始化
结构体变量的初始化以及引用 例/*参考程序7-1.c* include <stdio. h> struct student i int num; 定义变量后,再初始化 char name [20]; 要给结构体里的变量依次 int score[3] 赋值 main( sturct student s1: int l, average printf("Input number: \n") scanf(‰d",&s1num) gets(s1. name
结构体变量的初始化以及引用 例 /*参考程序 7-1.c*/ #include <stdio.h> struct student { int num; char name[20]; int score[3]; }; main() { sturct student s1; int i,average; printf(“Input number:\n”); scanf(“%d”,&s1.num); gets(s1.name); ……} 定义变量后,再初始化 要给结构体里的变量依次 赋值
结构体数组 结构体数组的定义 三种形式: num 形式二 struct student 25B name stu[o] i int num seⅩ char name[20] age char sex num nt age name }stu[2]; sex age 定义结构体时同时定义变量
结构体数组 – 结构体数组的定义 三种形式: num name sex age num name sex age stu[0] stu[1] 25B 形式一 : struct student { int num; char name[20]; char sex; int age; }; struct student stu[2]; 先定义结构体,再定义变量 形式三 : struct { int num; char name[20]; char sex; int age; }stu[2]; 定义结构体时同时定义变量 形式二 : struct student { int num; char name[20]; char sex; int age; }stu[2]; 定义结构体时同时定义变量
结构体数组应用举例 例/*参考程序7-2.c* include <stdio. h> #define n 3 struct stu int num; char name [20] int score[4]; J main( int i k, max struct stu SINI printf("Input data: \n") for(i=0; K<N; i++) i scanf(%d%s %d%d%d",&(s[i]. num), s[ name, &s[score[on) &(s[]. score[1]),&(S[i]. score[2]);
结构体数组应用举例 例 /*参考程序 7-2.c*/ #include <stdio.h> #define N 3 struct stu { int num; char name[20]; int score[4]; }; main() { int i,k,max; struct stu s[N]; printf(“Input data:\n”); for(i=0;i<N;i++) { scanf(“%d%s%d%d%d”,&(s[i].num), s[i].name ,&(s[i].score[0]), &(s[i].score[1]),&(s[i].score[2]));