Bootstrap

c语言结构体作为形参是否加struct_结构体作为函数形参的归纳

主要的知识归纳来自于这位博主的CSDN博客:https://blog.csdn.net/tham_/article/details/45370607

相当于自己学习他的同时做下的笔记吧

将一个结构体变量中的数据传递给另一个函数,有下列3种方法:

用结构体变量名作参数。一般较少用这种方法。

用指向结构体变量的指针作实参,将结构体变量的地址传给形参。

用结构体变量的引用变量作函数参数。

用实例来说明:

1 structstu{2 intnum;3 floatscore;4 }

1. 结构体变量作为函数的参数,修改之后的成员不能返回到主调函数里  /* 虽不能返回整体,但是可以手动 return 结构体中的某一个成员  */

void func(struct stu t) { t.num=132456} /* 如果main里定义了stu d,那么func(d)只是将d的副本传进func函数,也就是把d复制了一份传进去,所以修改不到main里的d

2.结构体数组作为函数的参数,修改之后的成员可以返回

1 void funa(structstu t[])

/*或者是引用地址 void funa(struct stu &t) 这样效率又高又简洁。引用变量主要用作函数参数,它可以提高效率,而且保持程序良好的可读性(引用'&'是C++的新特性)2 {3 t[0].num=3000101; /*注意结构体数组元素的成员的引用形式*/

4 t[0].score=81.0;5 t[1].num=3000102;6 t[1].score=82.0;7 }

3.结构体指针,修改之后的成员也可以返回

;