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';
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)