美文网首页
c++ &(引用)

c++ &(引用)

作者: 笑破天 | 来源:发表于2023-01-10 16:09 被阅读0次

    1、简介

    引用(reference)就是C++对C语言的重要扩充。引用是给别的已经存在的变量取得别名。它不单独开辟空间,它和引用的变量共同用同一块地址。对引用的操作与对变量直接操作完全一样。

    2、C++为什么要提出引用

    使用引用参数的主要原因有两个:
    1.能够修改调用函数中的数据对象,因为引用与原对象指向地址的同一个内容,引用可看作是别名。
    2.通过传递引用而不是整个数据对象,可以提高程序的运行速度,因为传值需要复制拷贝整个数据内容,而引用指向原来的数据内容,只是传递了一个别名。
    主要先查看自己需要使用的函数中是否需要修改传入参数,然后再看自己处理的数据大小,数据对象的类型是数组?结构?或对象?来判断使用情况

    这个用指针也可以。不是真正原因。我们在用指针的使用经常犯得错是什么:
    1,操作空指针,
    2,操作野指针,
    3,不知不觉改变了指针的值,而后还以为该指针正常。
    如果我们要正确的使用指针,我们不得不人为地保证这三个条件。而引用的提出就是解决这个问题。

    总结:引用可以理解成在被一些条件束缚住的指针,这里并不是说引用是指针,我的意思是,当指针被一些条件束缚住,他的属性等于引用。这些条件是:1,不是空指针,2,指向的内存必须存在,3,该指针的值永远不变。引用的提出就是:让人为地保证这三个条件变成让编译器保证。这样可以减少错误的产生。

    和指针的区别:

    3、引用

    引用是给别的已经存在的变量取得别名。它不单独开辟空间,它和引用的变量共同用同一块地址。指针是两个内存地址copy了同一份值。引用概念上定义一个变量的别名,指针存储一个变量地址。
    &在此不是求地址运算,而是起标识作用
    声明引用时,必须同时对其进行初始化
    int a=2,&ra=a;//a为目标原名称,ra为目标引用名。给ra赋值:ra=1; 等价于 a=1;读作 "ra是一个初始化为 a 的整型引用"

    引用变量

    void Swap(int& left, int& right) {
       int temp = left;
       left = right;
       right = temp; }
    

    引用作为返回值。函数名称前面加引用符号“&”的意思是返回引用类型

    int& Add(int a, int b) {
        int c = a + b;
        return c;
    }
    int& ret = Add(1, 2);
    Add(3, 4);
    printf("ret=%d\n",ret);  //ret=7
    

    C++中函数名字前的&或*
    C++引用详解

    相关文章

      网友评论

          本文标题:c++ &(引用)

          本文链接:https://www.haomeiwen.com/subject/pabpcdtx.html