Loading

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章

作者:caojun97

出处:https://www.cnblogs.com/caojun97/p/17317803.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   eiSouthBoy  阅读(221)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu