num 2字节 struct student f int num; name 20字节 char name 201; sex 1字节 char sex; age 2字节 int age: float score, scores 4字节 char addr 301; addr 30字节 ④结构体类型定义仅描述结构体的组成不分配内存空间 Advanced Programming
Advanced Programming struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; name num sex age score addr 2字节 2字节 20字节 1字节 4字节 30字节 … ….. 结构体类型定义仅描述结构体的组成,不分配内存空间
2、定义结构体类型变量的方法(3种 (1)先声明结构体类型,再定义结构体变量 定义结构体 struct结构体名 struct student 类型 类型标识符成员名; f int num; 类型标识符成员名; char name 201; char sex: Int age; struct结构体名变量名表列 float score; char addr30li struct student stul stu2 ■口■■■ 定义结构体变量 Advanced Programming
Advanced Programming 2、定义结构体类型变量的方法(3种) (1)先声明结构体类型,再定义结构体变量 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct student stu1,stu2; 定义结构体 类型 定义结构体变量 struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }; struct 结构体名 变量名表列;
(2)声明结构体类型的同时定义结构体变量 struct student struct结构体名 f int num; 类型标识符成员名 char name 201 类型标识符成员名 char sex: 00。 nt age 变量名表列 float score char addr 301; 定义结构体类型 stul, stu2 i ④只有在定义了结构 定义结构体变量 体变量后系统才为 其分配内存。 Advanced Programming
Advanced Programming (2)声明结构体类型的同时定义结构体变量 只有在定义了结构 体变量后系统才为 其分配内存。 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; } stu1,stu2 ; 定义结构体类型 定义结构体变量 struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列;
(3)直接定义结构体类型变量 struct struct int num: 类型标识符成员名 char name 201; 类型标识符成员名 char sex: nt age 变量名表列; fle loat scores char addr 301; 3 stul, stu2 用无名结构体直接 定义变量只能一次 Advanced Programming
Advanced Programming (3)直接定义结构体类型变量 用无名结构体直接 定义变量只能一次 struct { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列; struct { int num; char name[20]; char sex; int age; float score; char addr[30]; } stu1,stu2 ;
◆说明 ◇结构体类型与结构体变量概念不同 ●类型不分配内存; 变量分配内存 ●类型不能赋值、存取、运算;变量:可以 ◇结构体变量中的成员可单独使用,方法如普通变量 ◇结构体可嵌套 struct student i int num char name 201; birthday num name struct date month day year i int month printf ("od", sizeof(stu)); Int day; 结果:28 int year, birthdays
Advanced Programming ◆说明 ❖结构体类型与结构体变量概念不同 ⚫类型:不分配内存; 变量:分配内存 ⚫类型:不能赋值、存取、运算; 变量:可以 ❖结构体变量中的成员可单独使用,方法如普通变量; ❖结构体可嵌套 struct date { int month; int day; int year; }; struct student { int num; char name[20]; struct date birthday; }stu; num name birthday month day year printf ("%d ", sizeof (stu) ); struct student { int num; char name[20]; struct date { int month; int day; int year; }birthday; }stu; 结果:28