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 @ 2023-02-26 01:16  快乐在角落里  阅读(48)  评论(0编辑  收藏  举报