学科分类
目录
C语言

结构体指针作为函数参数

结构体指针变量用于存放结构体变量的首地址,将结构体指针作为函数参数传递时,其实就是传递结构体变量的首地址,在被调函数中改变结构体变量成员的值,那么主调函数中结构体变量成员的值也会被改变。

接下来通过一个案例演示结构体指针作为函数参数的调用,具体如例1所示。

例1 demo3.c

 1  #include <stdio.h>
 2  struct Student
 3  {
 4    char name[50];
 5    int studentID;
 6  };
 7  void change(struct Student* stu)
 8  {
 9    strcpy(stu->name, "lisi");
 10   stu->studentID = 2;
 11 }
 12 int main()
 13 {
 14   struct Student student = { "Zhang San", 1 };
 15   change(&student);
 16   printf("name = %s studentID = %d\n", student.name, student.studentID);
 17   return 0;
 18 }

例1运行结果如图1所示。

图1 例1运行结果

在例1中,第2~6行代码定义了struct Student结构体类型。第7~11行代码定义了change()函数,该函数接受struct Student结构体类型的指针变量作为参数,在函数内部,通过指针修改结构体变量成员值。在第12~18行的main()函数中,第14行代码定义struct Student结构体变量student并初始化。第15行代码调用change()函数,取student变量的地址作为其参数。第16行代码输出struct Student结构体变量的成员值。由图1可知,调用change()函数之后,struct Student结构体变量的成员值被修改了。

点击此处
隐藏目录