C++的引用变量作为函数参数
一、问题引入
在C++的中新增一个特性:按引用传递变量,虽然与按传递变量的地址可以实现相同的结果,但引用有其独特的地方。
引用传递: 引用经常被用作函数参数,使得函数中的变量名成为调用程序中的变量的别名。
通过引用变量用作参数,函数将使用原始数据,而不是其副本。
二、解决过程
举例说明:
#include <iostream>
using namespace std;
void swapv(int a, int b) // 传变量的值
{
int temp = a;
a = b;
b = temp;
}
void swapp(int *a, int *b) // 传变量的地址
{
int temp = *a;
*a = *b;
*b= temp;
}
void swapq(int & a, int & b) // 传引用变量
{
int temp = a;
a = b;
b = temp;
}
int main(void)
{
int wallet1 = 120;
int wallet2 = 50;
cout << "source wallet1:" << wallet1 << endl;
cout << "source wallet2:" << wallet2 << endl;
cout << endl;
swapv(wallet1, wallet2);
cout << "传变量的值" << endl;
cout << "wallet1:" << wallet1 << endl;
cout << "wallet2:" << wallet2 << endl;
cout << endl;
wallet1 = 120;
wallet2 = 50;
swapp(&wallet1, &wallet2);
cout << "传变量的地址" << endl;
cout << "wallet1:" << wallet1 << endl;
cout << "wallet2:" << wallet2 << endl;
cout << endl;
wallet1 = 120;
wallet2 = 50;
swapq(wallet1, wallet2);
cout << "传引用变量" << endl;
cout << "wallet1:" << wallet1 << endl;
cout << "wallet2:" << wallet2 << endl;
cout << endl;
return 0;
}
💡 运行结果
三、反思总结
C++新增的这项特性时对C语言的超越,C语言只能按值传递。
在使用传递变量的地址, 在函数使用的整个过程中, 都需要使用解引用运算符 *
,而 传递引用变量, 则可以使用使用变量。
因为引用参数实际上是基于指针的代码的另一个接口,那么什么时候应使用引用?、什么时候应使用指针?、什么时候应按值传递?
四、参考引用
C++ Primer Plus:中文版 (第六版) 第8章
热门相关:桃花 刺客之王 第一神算:纨绔大小姐 天启预报 网游之逆天飞扬