结构体传参有俩种方法:传值和传地址
#include<stdio.h>
struct stu
{
int arr[10];
int age;
};
void func1(struct stu xx)
{
int i = 0;
for (i = 0; i < 4; i++)
{
printf("%d ", xx.arr[i]);
}
printf("%d\n", xx.age);
}
void func2(const struct stu* xx)
{
int i = 0;
for (i = 0; i < 4; i++)
{
printf("%d ", xx->arr[i]);
}
printf("%d", xx->age);
}
int main()
{
struct stu x = { {1,2,3,4},20 };
func1(x); //传值调用
func2(&x); //传址调用
return 0;
}
//传址调用优于传值调用
//因为传值的话,内存会开辟另外一个空间来创建临时变量来容纳形参,造成空间和时间上的开销(压栈)