结构体的定义:结构体是一种构造数据类型
用途:把不 同类型的数据组合成一个整体-------自定义数据类型
1、结构体类型定义
struct [结构体名]
{
类型标识符 成员名;
类型标识符 成员名;
…………….
};
说明:1.结构名可以省略(用无名结构体直接定义变量只能一次)
2.成员类型可以是基本型或构造型
3.结构体类型定义描述结构的组织形式,不分配内存
例:
struct student
{
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
2、结构体变量的定义
(1)先定义结构体类型,再定义结构体变量
struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
…………….
};
struct 结构体名 变量名表列
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
struct student stu1,stu2;
例 #define STUDENT struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
STUDENT stu1,stu2;
(2)定义结构体类型的同时定义结构体变量
struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}变量名表列;
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;
struct
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}变量名表列;
struct
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;
说明:
结构体类型与结构体变量概念不同
类型:不分配内存; 变量:分配内存
类型:不能赋值、存取、运算; 变量:可以
结构体可嵌套
结构体成员名与程序中变量名可相同,不会混淆
结构体类型及变量的作用域与生存期
3、结构体变量的引用
引用规则
结构体变量不能整体引用,只能引用变量成员
引用方式: 结构体变量名.成员名
成员(分量)运算符
优先级: 1
结合性:从左向右
可以将一个结构体变量赋值给另一个结构体变量
结构体嵌套时逐级引用