C++ 不同参数传递方式
C++分为值传递和引用传递
值传递
调用函数时,形参是函数外实参的拷贝,形参的值改变不影响函数外实参的值。
形参会存放在栈空间中,传值时,会将实参的值拷贝到形参对应的地址中,对这个地址的操作不会改变实参
引用传递
调用函数时,形参是函数外实参的引用别名,形参的值改变将改变函数外实参的值。
传值时,相当于是把实参的地址传递给形参,所以操作形参时,也会改变实参的值
#include <iostream>
using namespace std;
// 函数传递方式
// 值传递
void swapValue(int a,int b);
// 引用传递
void swapRef(int &a,int &b);
int main(){
int a{1};
int b{2};
cout << "swapValue before mian\ta: " << a << "\tb: " << b << '\n';
swapValue(a,b);
cout << "swapValue after mian\ta: " << a << "\tb: " << b << "\n------------------------------\n";
int c{1};
int d{2};
cout << "swapRef before mian\ta: " << c << "\tb: " << d << '\n';
swapRef(c,d);
cout << "swapRef after mian\ta: " << c << "\tb: " << d << '\n';
return 0;
}
void swapValue(int a,int b){
a = a + b;
b = a - b;
a = a - b;
cout << "swapValue\t\ta: " << a << "\tb: " << b << '\n';
}
void swapRef(int &a,int &b){
a = a + b;
b = a - b;
a = a - b;
cout << "swapRef\t\t\ta: " << a << "\tb: " << b << '\n';
}


浙公网安备 33010602011771号