函数中可以传递结构体,有两种情况:
1、传递结构体中的数据值
用练习举例

(1)定义结构体

这里我用的起别名,可以不用写Student,但是我想写。
(2)定义一个学生,并给学生赋值

由于stu.name是要赋值一个字符串,所以底层还是一个字符数组,要用到字符串的函数进行赋值。
srtcpy(stu.name,”aaa”);
这里赋值aaa只是用于进行对照实验。
(3)输出打印

(4)定义函数,用来进行修改学生中的数据

函数名method,返回值类型为void(空类型),形参st1,数据类型为S;
函数体部分,主要是打印接收前的初始值,和修改后的修改时。
在修改学生年龄的地方,由于结构体Student里年龄属性只是一个普通的int类型变量,所以在使用scanf的时候要加上&获取其地址值。
(5)调用函数
开始调用之前记得声明函数



可以看到,在调用函数修改之后,打印输出的还是原来的值,这是因为函数中写的是结构体类型的变量,相当于是定义了一个新的变量
此时是把main函数中stu中的数据,传递给了method函数,并把stu中的数据给了新的变量st1,
在函数中仅仅只是修改了变量st1中的值,对main中的stu的值是没有进行修改的。
如果想要实现,就需要用到第二种情况
2、传递结构体的地址值
将method函数里的形参,改成S类型的指针。

由于我们要传递一个指针形参,所以实参我们需要加上&

记得修改声明的函数


