关于引用(&),它的本质是const的指针,一旦确定指向(引用)关系,即无法改变。
    image.png
    通过引用,可以对一些外部变量进行修改,如下图的h()函数,可以更改输入值image.png
    指针与引用的区别:
    image.png
    image.png
    在上面,离变量最近的指示符号(*或&)限定变量的类型(指针或引用)

    对引用的进一步的理解和运用

    在前面,在外部(非类内成员变量和参数列表情形下)使用时,必须对引用进行初始化赋值,
    在类的内部使用时,可以在声明时不赋值,但必须在初始化列表中括号里进行初始化。
    image.png

    类似于const指针的用法,为了让函数没有那么多星号(),看着简洁美观,引入const &
    image.png
    由此,**当今通用的写法都是在参数列表中传入指针(
    )或者是引用(&),原因是直接传入对应数据类型的变量会造成大量的copy运算和传递,表面上看起来相同的结果,实际上要耗费的时间随数据大小增长而增长。**

    引用作为返回值时,在参数列表里面如果加上const则可以在函数入口参数进行运算,否则就会像下面的 func(i * 3) 一样报错。一种解释是编译器中产生了如下的代码。
    image.png