zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    Spark算子(二)Action
    Spark中利用Scala进行数据清洗(代码)
    Spark核心概念
    Scala面向对象详解
    Scala控制语句
    Scala基础语法
    Scala简介、安装、函数、面向对象
    Hbase优化
    管理员必备的20个Linux系统监控工具
    iOS 关于webView的使用方法
  • 原文地址:https://www.cnblogs.com/wanghuixi/p/6901680.html
Copyright © 2011-2022 走看看