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';
}

image

posted @   快乐在角落里  阅读(67)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示