一、基本介绍
1、值传递:形参是实参的副本(复制、拷贝),形参值的改变不会影响实参的值,这种方式用的最多。
2、指针传递:形参是指针类型,形参作指针运算后指向的就是实参,所以会影响实参的值,这种方式用的也很多。
3、 引用传递(C++):在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。这种方式用的也蛮多的。(引用只是一个别名)
二、代码示例
1、值传递
(1)代码
// #include <stdio.h> void swap(int a, int b) { int tmp; tmp = a; a = b; b = tmp; printf("a: %d b: %d\n", a, b); } int main() { int a = 1; int b = 2; printf("a: %d b: %d\n", a, b); swap(a, b); printf("a: %d b: %d\n", a, b); } //
(2)运行结果
2、指针传递
(1)代码
// #include <stdio.h> void swap(int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; printf("a: %d b: %d\n", *a, *b); } int main() { int a = 1; int b = 2; printf("a: %d b: %d\n", a, b); swap(&a, &b); printf("a: %d b: %d\n", a, b); } //
(2)运行结果
3、引用传递(C++)
(1)代码
// #include <stdio.h> void swap(int &a, int &b) { int tmp; tmp = a; a = b; b = tmp; printf("a: %d b: %d\n", a, b); } int main() { int a = 1; int b = 2; printf("a: %d b: %d\n", a, b); swap(a, b); printf("a: %d b: %d\n", a, b); } //
(2)运行结果
致谢
2、C/C++函数形参传实参时值传递、指针传递、引用传递的区别
4、C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
6、c++中函数参数传递(值传递、指针传递,引用传递)进一步认识