cpp引用做函数参数

03 引用做函数参数

作用:函数传递参数的时候,可以使用引用来让形式参数修饰实际参数

优点:可以简化指针修改实际参数

我们可以回顾一下目前学习过的函数传递方式:

  1. 值传递:实参不会被修改,形参不可以修饰实参
  2. 地址传递:实参可以被修改,形参可以修饰实参。但是需要传递地址。

但是,我们使用引用的话,形参也可以修饰实参。

我们慢慢来。还是那个例子,交换两个数字。

  1. 值传递:

    #include 
    using namespace std;
    void fun1(int a, int b);
    int main()
    {
    int a = 10;
    int b = 20;
    fun1(a, b);
    cout << "a =" << a << endl;
    cout << "b =" << b << endl;
    return 0;
    }
    void fun1(int a, int b)
    {
    int temp = a;
    a = b;
    b = temp;
    }

    运行结果:

    a =10
    b =20

    注意:值传递形参不可以修饰实参。

  2. 地址传递:

    #include 
    using namespace std;
    void fun2(int* a, int* b);
    int main()
    {
    int a = 10;
    int b = 20;
    fun2(&a, &b);
    cout << "a =" << a << endl;
    cout << "b =" << b << endl;
    return 0;
    }
    void fun2(int* a, int* b)
    {
    int temp = *a;
    *a = *b;
    *b = temp;
    }

    结果:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)

    a =20
    b =10

    会发现,地址传递下,形参是可以修饰实参的。

  3. 引用传递:

    这也是我们今天需要学习的。

    #include 
    using namespace std;
    void fun3(int &a, int &b);
    int main()
    {
    int a = 10;
    int b = 20;
    fun3(a, b);
    cout << "a =" << a << endl;
    cout << "b =" << b << endl;
    return 0;
    }
    void fun3(int &a, int &b)
    {
    int temp = a;
    a = b;
    b = temp;
    }

    结果:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)

    a =20
    b =10

    引用传递形参也会修饰实参。

    仔细观察会发现,引用传递的自定义函数内的代码和值传递完全相同。唯一不同的是在声明函数的时候,值传递是:void fun1(int a, int b);而地址传递是这样的:void fun3(int &a, int &b);

    当函数内使用引用来接收传入值,形参就是实参的别名。所以在函数内的操作就会反应到函数外,也就是形参可以修饰实参。

    (但是我还是建议学好指针......)

总结:通过引用传递参数的效果和地址传递是一样的(形参可以修饰实参)。但是引用传递的语法更简单。

文章「cpp引用做函数参数」,由本站用户「Admin」发布。文章仅代表Admin观点,不代表本站立场。
页面网页地址「https://xiaozhiyuqwq.top/p/826」。
如您对文章及其附件提出版权主张,或进行引用转载等,请查看我们的【版权声明】
无评论:-)

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇