• C++引用


    大家都知道,C++ 语言有一种 很好用的 也是很常用的技术 叫做引用,这个是在C语言的基础上的一个扩冲,类似指针,只是在声明的时候用&取代了* , 引用可以看作是被引用的一个别名,在声明时必须同时进行初始化。

    1.函数参数的引用

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

    2.函数引用返回值

    在C++中非void型函数需要返回一个返回值,类似函数形参,我们同样可以将函数的返回值声明为引用。普通的函数返回值是通过传值返回,即将关键字return后面紧接的表达式运算结果或变量拷贝到一个临时存储空间中,然后函数调用者从临时存储空间中取到函数返回值。

    #include<iostream>
    using namespace std;
    
    int valplus(int &a);
    
    int main()
    {
        int num1 = 10;
        int num2;
        num2 = valplus(num1);
        cout<<num1<<" "<<num2<<endl;
        return 0;
    }
    
    int valplus(int &a)
    {
        a = a + 5;
        return a;
    }

    valplus函数采用的是普通的传值返回,也即将变量a的结果加上5之后,将结果拷贝到一个临时存储空间,然后再从临时存储空间拷贝给num2变量。 当我们将函数返回值声明为引用的形式时,如例5所示。虽然例5运行结果和例4是相同的,但例5中的valplus函数在将a变量加上5之后,其运算结果是直接拷贝给num2的,中间没有经过拷贝给临时空间,再从临时存储空间中拷贝出来的这么一个过程。这就是普通的传值返回和引用返回的区别。

    #include<iostream>
    using namespace std;
    
    int & valplus(int &a);
    
    int main()
    {
        int num1 = 10;
        int num2;
        num2 = valplus(num1);
        cout<<num1<<" "<<num2<<endl;
        return 0;
    }
    
    int & valplus(int &a)
    {
        a = a + 5;
        return a;
    }
  • 相关阅读:
    CSU1784
    HDU 6128 Inverse of sum(数学)
    容斥原理入门
    HDU 6129 Just do it(规律)
    HDU 6140 Hybrid Crystals(zz)
    HDU 6143 Killer Names(排列+容斥,dp)
    zzuli 2177 Contest
    zzuli 2180 GJJ的日常之沉迷数学(逆元)
    除法逆元入门
    乘法逆元数论篇
  • 原文地址:https://www.cnblogs.com/wanghuixi/p/6901680.html
Copyright © 2020-2023  润新知