结构体作为函数参数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jc_deng/article/details/79465913
假设有这样一个结构体:
typedef struct
{
    int a;
}stu;
再假设有这么一个函数:
void fun(stu *s){ s.a = 1;}

函数的参数是一个结构体类型的指针,那么怎么传参呢?
1、
stu *sp;
fun(sp);
2、
stu s;
fun(&s);
貌似两种都可以,但实际上1中sp为结构体类型的指针,指针并没有初始化也没有赋值,所以传入函数将出错,可以这样:
stu st;
stu *sp = &st;
fun(sp);
使sp指向结构体st,然后对st的数据成员进行操作。

猜你喜欢

转载自blog.csdn.net/jc_deng/article/details/79465913