美文网首页
C++ - 引用的概念

C++ - 引用的概念

作者: Mitchell | 来源:发表于2016-01-12 16:39 被阅读61次
    • 下面的写法定义了一个引用,并将其初始化为引用某个变量。
      类型名 & 引用名 = 某变量名;
    int n = 4;
    int &r = n;//r 引用了 n,r 的类型是 int&
    
    • 某个变量的应用,等价于这个变量,相当于该变量的一个别名。
    • For example
    int n = 7;
    int & r = n;
    r = 4;
    cout << r;//输出 4
    cout << n;//输出 4
    n = 5;
    cout << r; //输出5
    

    注意:

    • 定义引用时一定要将其初始化成引用某个变量
    • 初始化之后,它一直引用该变量,不会再引用别的变量了。
    • 引用只能引用变量,不能引用常量和表达式。
    • For example
    double a = 4,b = 5;
    double & r1 = a;
    double r2 = r1;
    r2 = 10;
    cout<<a <<endl;//10
    r1 = b;
    cout<<a <<endl;//5
    

    交换两个整形变量值的函数

    //C 语言中的写法,使用指针,写法比较丑陋
    void swap(int *a,int *b){
      int tmp;
    tmp = *a;*a = *b;*b = tmp;
    }
    int n1,n2;
    swap(&n1,&n2);
    
    //C++,使用引用,比较清晰
    void swap(int&a,int&b){
      int tmp;
    tmp = a;a= b;b = tmp;
    }
    int n1,n2;
    swap(n1,n2);
    

    引用作为函数的返回值

    int n = 4;
    int & SetValue(){return n;}
    int main()
    {
        SetValue() = 40;
        cout<<n;
        return 0 ;
    }//返回一个全局变量 n 的引用,对这个引用进行新的赋值为40,那么打印结果就是40.
    

    常引用

    • 定义引用时,前面加 const 关键字,即为“常引用”
      int n ;
      const int & r = n;
      r 的类型是 const int &

    不能通过常引用去修改其应用的内容

    int n =100;
    const int & r = n;
    r = 200;//报错(常引用的内容不能被修改,但是不意味着常引用的内容不能被修改。)
    n = 300;//没问题
    

    常引用和非常引用的转换

    count T &和 T&是不同的类型!!!

    • T & 类型的引用或者 T 类型的变量可以用来初始化 const T & 类型的引用。
    • count T 类型的常变量和 const T & 类型的引用则不能用来初始化 T & 类型的引用,除非进行强制类型转换。

    相关文章

      网友评论

          本文标题:C++ - 引用的概念

          本文链接:https://www.haomeiwen.com/subject/xghckttx.html