C++中的引用

C++中的引用,第1张

目录

一、引用定义

二、const与引用的关系

 常引用

三、引用的好处

总结


一、引用定义

引用定义:类型 &引用变量名称 = 变量名称,&和类型结合称之为引用符号,不是取地址符,代表别名,引用就是为对象起一个别名。

注意:1.引用不分级,即不存在引用的引用(例:int && x = 10不是引用的引用,是右值引用)

           2.没有空引用

           3.引用必须初始化

           4.系统不会给引用分配空间,它是别名

代码示例:

int main()
{
    int a = 10;
    int& b = a;

    cout << "a= "<< a << endl;
    cout << "b= "<< b << endl;

    return 0;
}

运行结果:

在引用数组时需要描述数组的两个属性:类型和个数

例:

int ar[5] = {1,2,3,4,5};

int (&br)[5] = ar;

int& cr[5] = ar; //error,数组需要开辟空间,而引用是别名,这种写法产生矛盾

二、const与引用的关系 常引用

代码如下(示例):

int main()
{
    int a = 10;
    int& x = a;
    const int& y = a;
    //int const& y = a;
    //y += 10;//error,不能通过改变y的值来改变a

    //若要改变,如下
    int c = y;
    c += 10;
   
    return 0;
}
int main()
{
    int a = 10;
    const int b = 20;
    const int& rx = a;
    const int& ry = b;
    //int& ry = b;error 不安全
    const int& rz = 100;//可以引用字面常量
    //原理:int tmp=100; const int& rz = tmp;

    return 0;
}
三、引用的好处

1.引用与指针相比更加安全,指针做为形参使用时,必须对指针进行判空,对空指针解引用程序会崩溃,而引用则不需要判空,没有空引用之说,在调动函数时,必须初始化引用。

代码示例:

void Swap(int& ap, int& bp)
{
    int tmp = ap;
    ap = bp;
    bp = tmp;
}

int main()
{
    int x = 10, y = 20;
    Swap(x, y);
    cout << "x= " << x << "y= " << y << endl;
    return 0;
}

2.引用不会浪费空间时间,不会建立副本

例:

引用与指针具体区别请移步这一篇博客:https://blog.csdn.net/weixin_48716357/article/details/124582039


总结

引用是给对象另外起一个名字,不会分配空间,没有引用的引用,也没有空引用,引用必须进行初始化。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/868068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存