结构体定义(3种)
- 声明结构体包括两步
- 定义结构体
- 声明相应结构体类型的变量(结构体能包含C语言允许的所有类型变量)
- 法一:在定义结构体类型的同时说明结构体变量
struct 结构体标识符
{
成员变量列表;
}变量名列表;
struct
{
成员变量列表;
}变量名列表;
struct 结构体标识符
{
成员变量列表;
};
struct 结构体标识符 变量名列表;
调用结构体:
- 普通结构体
. 成员变量的引用 结构体变量名.成员名
- 结构体指针两种表示
(* 变量名).成员字段名
:点操作(.)比取值操作符(*)有更高的优先级,所以要加括号
- -> 指针成员变量引用
结构体指针变量名字->成员名
初始化结构体(两种方法)
- 在声明结构体类型时,不能指直接赋值,而是要定义结构体变量后才可以赋值。结构体是一种类型,而不是一个变量。
- 声明结构体变量后,单独初始化每个成员
- 通过集合符号对结构体变量进行初始化,使用花括号。变量之间用逗号隔开,成员字段按指定顺序查值并初始化。
- 使用结构体指针之前,必须对其进行初始化
- 结构体只是一种
类型
,不是变量。
结构体嵌套
- 一个结构体成员列表中嵌套另外一种数据类型的结构体,并声明该结构体类型的变量
struct Student{
char name[20];
char sex;
int age;
struct Teacher{
int num;
char subject[20];
char address[30];
}teacher;
}Stu;
- 定义一个结构体数据类型时候,成员列表中可以定义若干个其他数据类型的结构体,并同时声明该类型的结构体变量
struct Student{
char name[20];
char sex;
int age;
struct Teacher{
int num;
char subject[20];
char address[30];
struct unit{
char company[30];
char company_addr[30];
}units;
}teacher;
}Stu;