zoukankan      html  css  js  c++  java
  • 引用和指针做形参时的区别

    引用和指针做形参是很常见的问题,但是它们在做参数的时候是有区别的。先说一下指针吧,指针他是一个变量,有具体的值,他的值是一个地址(非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的地址。另外还有一点要知道,指针做形参,传递指针的时候,会产生一个临时的指针变量,需要分配额外的内存空间;但是传引用的话

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

  • 相关阅读:
    最大连续子数组问题之一维数组
    敏捷开发读后感
    第一次作业总结
    OS X(10.10) python3.4 matplotlib的安装
    XCODE 6.1.1 配置GLFW
    python装饰器(decorator)
    Android实现Service永久驻留
    软件项目管理第2次作业:豆瓣测评
    软件项目管理第1次作业:四则运算生成器
    软件项目管理第0次作业:如果一定要改变世界的话,为什么不用最酷的方式呢
  • 原文地址:https://www.cnblogs.com/buanxu/p/12754037.html
Copyright © 2011-2022 走看看