1. 结构体指针
1.1 定义一个结构体指针
当一个变量指向结构体时,就称它为结构体指针。举个例子:
typedef struct
{
uint8_t age;
const char *name;
}StudentInfo;
int main()
{
StudentInfo Info; //结构体变量
StudentInfo *pInfo = &Info; //结构体指针
Info.age = 15;
Info.name = "liangchen";
......
return 0;
}
需要注意的是,结构体变量名和数组名不一样,数组名在表达式中会被转换为一个指针常量,结构体变量名不会,在任何地方结构体变量名都表示整个集合本身,要想取得结构体的地址,必须在前面加 & 才行。
结构体和结构体变量是两个不同的概念。
结构体是一种数据类型,这种数据类型有我们自己来定义,编译器不会为它分配内存空间,就像下面这样,我们定义了一种 StudentInfo 的数据类型,就和 int 、float、char一样,是一种数据类型。
typedef struct
{
uint8_t age;
const char *name;
}StudentInfo;
结构体变量才是实实在在的数据,需要内存存储数据,比