C++中函数参数传递的三种类型--传值-传指针-传引用
C++中增加了引用这种类型,主要是把引用作为函数参数, 来扩展函数传递数据的功能
总结下来,C++中函数传参数有以下3种方式:
1. 将变量名作为实参和形参. 这时传给形参的是变量的值, 传递是单向的.
如果传递进函数中的这个参数, 它在函数中对它的值进行了变更. 显然,它并不会影响函数外面,传递进函数之前它的值.
void Method(int x, int y) //形参是变量的值,不是变量本身 { x += 5; y += 10; } //函数调用时 int a = 9, b = 10; Method(9,10); //这个函数执行完后,并不会改变函数外面变量a和b的值
2. 传递变量的指针
如果传递的是变量的指针(定义函数时,函数的形参是指针), 由于指针指向一个变量的地址, 所以在实际调用这个函数时,它应该传入的是变量的地址
这个时候,你在函数内部去改变这个指针指向的变量的值,显然,在函数外面它的值也会跟着变化
void Method1(int *x, int *y) //形参是变量的指针 { *x += 5; *y += 10; } //函数调用时 int a = 9, b = 10; Method1(&a,&b); //实参传入的应该是变量的地址 => 调用完成后,函数外面a,b的值都会发生变化
3. C++中还提供了一种,传递变量的引用
形参是变量的引用,我们知道在C++里面,引用相当于变量的别名, 就等同于变量本身. 所以实参实际就是变量本身.
所以,你在函数内部改变实惨的值,函数外面它的值也会跟着变化
void Method2(int &x, int &y) // 形参是引用类型 { x += 5; y += 10; } //函数调用时 int x =1, y = 2; Method2(1,2); //实惨传递的就是变量x,y本身,所以函数内部对参数值的改变,会影响函数外部x,y的值