91结控体 912结构体变量的定义与初始化 1.结构体类型变量的定义 struct student 利用已定义的结构体类型名定mm 8个字节 struct结构体名变量名表;name30个字节 例如: 1个字节 age 2个字节 struct bookcard book1[100 addr 60个字节 ruct student sI30,t1,t2;scoe12个字节 按照结构体类型的组成,系统为定义的结构体 变量分配內存单元。结构体变量的各个成员在内存 中占用连续存储区域,结构体变量所占内存大小为 结构体中每个成员所占用内存的长度之和。20211
2021/2/21 6 9.1 结构体 9.1.2 结构体变量的定义与初始化 1. 结构体类型变量的定义 ⚫ 利用已定义的结构体类型名定义变量 struct 结构体名 变量名表; 例如: struct bookcard book1[100]; struct student s[30], t1, t2; 按照结构体类型的组成,系统为定义的结构体 变量分配内存单元。结构体变量的各个成员在内存 中占用连续存储区域,结构体变量所占内存大小为 结构体中每个成员所占用内存的长度之和。 struct student num 8个字节 name 30个字节 sex 1个字节 age 2个字节 addr 60个字节 score 12个字节
91结控体 结构体类型与变量的说明 struct date f int year,month, day; 3; num 8个字节 struct student name 30个字节 i char num[8 1个字节 char name 301; year2个字节 char sex: struct date birth d/ birthdaymonth2个字节 char addr 60li day2个字节 int score|6]」 addr 60个字节 score 12个字节 对象。 2021/2/21
2021/2/21 7 9.1 结构体 结构体类型与变量的说明 ⚫ 类型与变量是不同的概念。 ➢ 应先定义一个结构体类型,而后再定义结构体变量。 ➢ 系统对类型不分配空间,仅对变量分配空间。 ➢ 只能对变量赋值、存取或运算,而不能对一个类型 赋值、存取或运算。 ⚫ 成员也可以是结构变量。 ⚫ 对结构中的成员,可以单独使用,它的作用与 地位相当于普通变量。 ⚫ 成员名可与程序中的变量名相同时,也可与不 同结构体类型的成员名相同,二者代表不同的 对象。 struct date { int year,month,day;}; struct student { char num[8]; char name[30]; char sex; struct date birthday; /* 成员为结构体类型 */ char addr[60]; int score[6]; }; num 8个字节 name 30个字节 sex 1个字节 birthday year 2个字节 month 2个字节 day 2个字节 addr 60个字节 score 12个字节
91结控体 8 912结构体变量的定义与初始化 1.结构体类型变量的定义 在定义结构体类型的同时定义变量 struct结构体名 成员定义表; }变量名表; 例如: struct student f char num[8], name 20], sex; Int age; float score }st30]; 2021/2/21
2021/2/21 8 9.1 结构体 9.1.2 结构体变量的定义与初始化 1. 结构体类型变量的定义 ⚫ 在定义结构体类型的同时定义变量 例如: struct student { char num[8],name[20],sex; int age; float score; }st[30]; struct 结构体名 { 成员定义表; }变量名表;
91结控体 912结构体变量的定义与初始化 1.结构体类型变量的定义 ●直接定义结构体类型变量 struct {成员定义表; }变量名表; 例如: struct d char num[], name[20], sex; int agey fle oat score, 3st30], a, b, c; 2021/2/21
2021/2/21 9 9.1 结构体 9.1.2 结构体变量的定义与初始化 1. 结构体类型变量的定义 ⚫ 直接定义结构体类型变量 例如: struct { char num[8],name[20],sex; int age; float score; }st[30], a, b, c; struct { 成员定义表; }变量名表;
91结控体 10 9.12结构体变量的定义与初始化 2.结构体变量的初始化 【例94】结构体变量的初始化。 struct date 如果初值个数少于结构体成员个数 int year,mon则将无初值对应的成员赋以0值。 struct student如果初值个数多于结构体成员个数, i char num 8 则编译出错。 struct date birthday oat score, }a={"96060ll"," Li ming",M,{1977,12,9},83}, b={"9608025", Zhang liming";F",{1978,5,10},87},c 2021/2/21
2021/2/21 10 9.1 结构体 9.1.2 结构体变量的定义与初始化 2. 结构体变量的初始化 【例9.4】结构体变量的初始化。 struct date { int year, month, day;}; struct student { char num[8], name[20], sex; struct date birthday; float score; }a={"9606011","Li ming",'M',{1977,12,9},83}, b={"9608025","Zhang liming",'F',{1978,5,10},87},c; 如果初值个数少于结构体成员个数, 则将无初值对应的成员赋以0值。 如果初值个数多于结构体成员个数, 则编译出错