• 引用和指针做形参时的区别


    引用和指针做形参是很常见的问题,但是它们在做参数的时候是有区别的。先说一下指针吧,指针他是一个变量,有具体的值,他的值是一个地址(非const)。

    而引用是对一个变量的引用,是变量的别名,并且在引用的时候必须要初始化。举个例子吧:  

    int  a=2;    

    int  &b=a;    // b是对a的引用,a、b是同一个内存单元,即a和b的值都是2,b就相当于是a的一个别名,改变b的值a也会发生改变,改变a的值b也会发生改变,例如

    b=10;      当系统执行了这条语句后,a和b的值就都变成了10;

    a=-5;       当系统执行了这条语句后,a和b的值就都变成-5。 因为a和b具有同一个内存空间,所以不管改变哪一个的值,另一个也会跟着发生改变,可以理解为一个

    人他可以有两个名字,他既可以叫 张三,也能叫李四,但不管是哪个名字,其实说的是一个人。然后说一下引用和指针做形参时的具体用法吧,举下面这个例子:

    void swap(int &pa,int *pb)

    {

    }

    int main()

    {

       int a,*b;

       swap(a,b)  

    }

    在主函数中调用swap()时,指针和引用做形参就是上面的形式。当用指针或者引用做形参来改变主函数中变量的值得时候,指针是值传递,传递的是指针变量b的值;而

    引用是址传递,传递的是变量a的地址。另外还有一点要知道,指针做形参,传递指针的时候,会产生一个临时的指针变量,需要分配额外的内存空间;但是传引用的话

    则不会,所以传引用效率更高,也比指针更安全。

  • 相关阅读:
    6 完全平方数相关
    5 三位数,每个位置不同
    Neo4j Admin Import 导入多个node和relationship
    Rust所有权
    Rust 多态
    Rust 泛型
    Rust trait
    Rust模块化
    Spring Cloud(Dalston.SR1)
    git 速度慢问题解决
  • 原文地址:https://www.cnblogs.com/buanxu/p/12754037.html
Copyright © 2020-2023  润新知