zoukankan      html  css  js  c++  java
  • C++引用

    引用就是变量的别名,对引用的所有操作,都是对其原变量的操作
    对变量声明一个引用,并不另外开辟内存单元,引用及原变量都代表同一变量单元
    声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量
    int a;
    int &b = a;//只是声明它和原有变量之间的关系,并不分配内存单元

    声明一个变量的引用之后,在运行期间,该引用一直与其代表的变量相联系,不能再作为其他变量的引用
    如下:
    int a1,a2;
    int &b = a1;
    int &b = a2;//不对,又企图使b成为变量a2的引用

    引用并不是一种独立的数据类型,它必须与某种类型的数据相联系,必须指定它代表哪个变量,对其进行初始化
    引用与其所代表的变量共享同一内存单元
    引用在初始化后不能再被重新声明为另一个变量的别名。
    对引用的初始化,可以用一个变量名,也可以用另一个引用。

    实际上,在C++中很少使用独立变量的引用

    引用的作用:将引用作为函数参数,不再重新分配内存空间

    可以建立指针变量的引用;
    int a;
    int *p = &a;
    int* &pt = p;

    可以用常量或表达式对引用进行初始化,但此时必须用const作声明
    int i = 5;
    const int &a = i + 3;

    const常引用

    常引用const是指向常对象的引用。

    常引用可以初始化为不同类型的对象或者右值

    int i = 42;
    // legal for const references only
    const int &r = 42;
    const int &r2 = r + i;

    double dval = 3.14;
    const int &ri = dval;

    而非常引用只能初始化为同类型的对象。const 引用则可以绑定到不同但相关的类型的对象或绑定到右值。

  • 相关阅读:
    乐观锁悲观锁及其使用场景
    inner join, left join, right join的作用是什么
    主键和唯一索引的区别
    在排序数组中查找元素的第一个和最后一个位置
    寻找旋转排序数组中的最小值
    [模板] 最小费用最大流
    CF878E Numbers on the blackboard
    CF1286F Harry The Potter
    CF1368H1 Breadboard Capacity
    CF1442E Black, White and Grey Tree
  • 原文地址:https://www.cnblogs.com/jiese/p/3124202.html
Copyright © 2011-2022 走看看