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 &类型的引用,除非进行强制类型转换。 
  • 相关阅读:
    Babel:JavaScript编译器
    Webpack:前端资源模块化管理和打包工具
    springboot之RocketMq实现
    spingboot之Java邮件发送
    第一模块总结
    嵌入式面试题(一)
    C/C++练习题(三)
    ToolTip特效 JavaScript 盗取厦门人才网的特效
    C#后台无刷新页面弹出alert方法
    复制表及其只复制表数据的区别
  • 原文地址:https://www.cnblogs.com/long98/p/10352256.html
Copyright © 2011-2022 走看看