📅  最后修改于: 2023-12-03 15:27:34.009000             🧑  作者: Mango
在C语言中,结构指针是一种指向结构体的指针变量。结构体是一种自定义的复合数据类型,可以包含多个不同数据类型的成员变量。通过结构指针,可以方便地访问和修改结构体的成员变量。
在使用结构指针之前,需要先定义一个结构体类型。结构体类型的定义包括结构体名称和成员变量。例如:
struct Student {
char name[20];
int age;
float score;
};
该结构体类型名为Student
,包含三个成员变量分别为name
、age
和score
。
要创建一个结构指针,需要使用struct
关键字和指针符号*
。例如:
struct Student *p;
表示创建了一个名为p
的结构指针变量,它可以指向Student
类型的结构体。
通过结构指针,可以使用->
操作符来访问和修改结构体成员变量。例如:
strcpy(p->name, "Tom");
p->age = 18;
p->score = 90.5;
表示将结构指针p
所指向的结构体中的成员变量name
、age
、score
分别赋值为"Tom"
、18
和90.5
。
如果需要动态创建结构体,可以使用malloc
函数来分配内存空间。例如:
struct Student *p;
p = (struct Student*)malloc(sizeof(struct Student));
表示创建了一个名为p
的结构指针变量,并且通过malloc
函数为其分配了Student
类型结构体所需的内存空间。
使用结构指针访问和修改成员变量与静态创建结构体的方式相同。例如:
strcpy(p->name, "Tom");
p->age = 18;
p->score = 90.5;
在动态创建结构体时,必须使用free
函数来释放结构体所占用的内存空间。例如:
free(p);
表示释放了结构指针p
所指向的结构体所占用的内存空间。
结构指针是C语言中常用的一种数据类型,它可以方便地访问和修改结构体成员变量。使用结构指针需要注意内存管理,需要在动态创建结构体时使用malloc
函数分配内存空间,并在结构体不再使用时使用free
函数释放内存空间。