C++ 的引用分析

    xiaoxiao2021-12-14  19

    引用的意义:

    引用作为变量名而存在,因此在一些场合可以代替指针

    引用相对于指针来说具有更好的的可读性和实用性

    const的引用

    --在C++中可以声明const引用

    --const Type &name =var;

    --const 引用让变量拥有只读属性

                            int  a = 4;

    const int& b = a;

    int * p = (int *) &b;

    b = 5; //错误,只读属性不允许赋值

    *p = 5;  //ok

    当使用常量对const 引用进行初始化时,C++编译器会为常量分配空间,并将引用名作为这段空间的别名

    const int& b = 1;//OK

    int *p =  (int*) &b;

    b = 5;  //错误

    *p = 5; //OK

    结论:使用常量对const引用初始化后将生成一个只读变量!!!

    引用在C++中的内部实现是一个常量指针

    Type&name; 《——》 Type * const name;

    注意:

    1.C++编译器在编译过程中使用常量指针作为引用的内部实现,因此引用所占的空间大小与指针相同。

    1.从使用的角度,引用只是一个别名,C++为了实用性而隐藏了引用的存储空间这一细节。

    引用作为变量别名而存在旨在代替指针

    const 引用可以使得变量具有只读属性

    引用在编译器内部使用常量指针实现

    引用的最终本质为指针

    引用可以尽可能发避开内存错误

    转载请注明原文地址: https://ju.6miu.com/read-970351.html

    最新回复(0)