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\n", person.a, person.b);//200 200.100000 return 0; }
2、值傳遞
向函數傳遞的是臨時變量,在函數內部修改值不會影響外部參數的取值
3、引用傳遞
入參為Type&,這里的&代表數據類型是一個引用,傳入的是參數本身,內部通過點號去訪問
4、指針傳遞
入參是Type*,指針類型,既然是指針則使用時傳入地址,及&person,函數內部通過->訪問