zoukankan      html  css  js  c++  java
  • C++引用类型详解

    一、引用的概念

    下面的写法定义了一个引用,并将其初始化为引用某个变量。 

    类型名 & 引用名 = 某变量名;   

    int n = 4; 
    int & r = n;  // r引用了 n, r的类型是 int & 

    某个变量的引用,等价于这个变量,相当于该变量的一个别名。 

    • 定义引用时一定要将其初始化成引用某个变量。 
    • 初始化后,它就一直引用该变量,不会再引用别的变量了。 
    • 引用只能引用变量,不能引用常量和表达式。 

    二、常用用法

    2.1 用引用来交换俩个变量的值

    简单实例:

    void swap( int & a, int & b) 
    {  
    	int tmp;
    	tmp = a; a = b; b = tmp; 
    }
    int n1, n2; 
    swap(n1,n2) ; // n1,n2的值被交换 

    2.2 引用作为函数的返回值

    int n = 4; 
    int & SetValue() { return n;  }
    int main()
    {  
    	SetValue() = 40;  
    	cout << n;  
    	return 0; 
    } 

    上面的代码输出为40。可以看出来函数引用了全局变量n。

    三、常引用

    定义引用时,前面加const关键字,即为“常引用”。

    int n; 
    const int & r = n; 

    r 的类型是 const int &  

    • 不能通过常引用去修改其引用的内容
    int n = 100;  
    const int & r = n;  
    r = 200;   //编译错 
    n = 300;  // 没问题 
    • const T & 和T & 是不同的类型!!! T & 类型的引用或T类型的变量可以用来初始化 const T & 类型的引用。 const T 类型的常变量和const T & 类型的引用则不能用来初始化T &类型的引用,除非进行强制类型转换。 
  • 相关阅读:
    Redis 发布与订阅模式
    JS回调函数全解析教程
    如何让你的SQL运行得更快
    Apache设置禁止访问目录
    Ext.Ajax.request提交实现waitMsg效果
    sublime的快捷键整理
    Sublime Text 2插件[这个不错哦]
    mysql如何开启对外连接?
    Javascript之旅——终点站:困惑的settimeout
    Javascript之旅——第十一站:原型也不好理解?
  • 原文地址:https://www.cnblogs.com/long98/p/10352256.html
Copyright © 2011-2022 走看看