📜  结构指针(1)

📅  最后修改于: 2023-12-03 15:27:34.009000             🧑  作者: Mango

结构指针

在C语言中,结构指针是一种指向结构体的指针变量。结构体是一种自定义的复合数据类型,可以包含多个不同数据类型的成员变量。通过结构指针,可以方便地访问和修改结构体的成员变量。

定义结构体

在使用结构指针之前,需要先定义一个结构体类型。结构体类型的定义包括结构体名称和成员变量。例如:

struct Student {
  char name[20];
  int age;
  float score;
};

该结构体类型名为Student,包含三个成员变量分别为nameagescore

创建结构指针

要创建一个结构指针,需要使用struct关键字和指针符号*。例如:

struct Student *p;

表示创建了一个名为p的结构指针变量,它可以指向Student类型的结构体。

使用结构指针访问和修改结构体成员变量

通过结构指针,可以使用->操作符来访问和修改结构体成员变量。例如:

strcpy(p->name, "Tom");
p->age = 18;
p->score = 90.5;

表示将结构指针p所指向的结构体中的成员变量nameagescore分别赋值为"Tom"1890.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函数释放内存空间。