1、代码
#include <stdio.h> struct Person{ int a; double b; }; /*引用传递*/ void AliasFun(struct Person& person) { person.a = 100; person.b = 100.1; } /*指针传递*/ void PointFun(struct Person* person) { person->a = 200; person->b = 200.1; } /*值传递*/ void ValueFun(struct Person person) { person.a = 300; person.b = 300.1; } int main(int argc, char* argv[]) { struct Person person; AliasFun(person); PointFun(&person); ValueFun(person); printf("%d %f ", person.a, person.b);//200 200.100000 return 0; }
2、值传递
向函数传递的是临时变量,在函数内部修改值不会影响外部参数的取值
3、引用传递
入参为Type&,这里的&代表数据类型是一个引用,传入的是参数本身,内部通过点号去访问
4、指针传递
入参是Type*,指针类型,既然是指针则使用时传入地址,及&person,函数内部通过->访问