• C/C++中的实参和形参,重点以及盲点,自己以前未知的


    C/C++中的实参和形参

     

      今天突然看到一道关于形参和实参的题,我居然不求甚解。藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师  T。T

    我觉得只要明白了值传递和地址传递,就应该能明白形参和实参的具体工作细节了。

    1、值传递

        实参是变量,表达式等值。

        find(int x){}

        y= find(z);

       上面的例子中,z是实参,x是形参。x变z不变。

       在值传递过程中,实参和形参位于内存中两个不同地址中,实参先自己复制一次拷贝,再把拷贝复制给形参。所以,在值传递过程中,形参的变化不会对实参有任何的影响。

    2、地址传递(也称引用传递)

       实参是指针。

       在函数调用的时候,实参传递给你的是指针地址,地址一样也就意味着实参和形参是一样的,当你的形参发生改变时,实参也会发生改变。

        find(int  &x){}

        y= find(z);

        上面的例子中,z是实参,x是形参。z随x而改变。

    3、const引用传递

        find(const int  &x){}

        y= find(z);

        上面的例子中,z是实参,x是形参。z不随x而改变。

        有人就会问了,你这样做不是和值传递一样的么?NO!

        仔细观察就会发现,在值传递中要进行两次拷贝,浪费内存资源是相当可耻的,const的出现有效避免了这种情况的出现,只需拷贝一次就够了。

  • 相关阅读:
    Eclipse连接MySQL数据库(傻瓜篇)
    JMeter监控内存及CPU ——plugin插件监控被测系统资源方法
    fiddler抓取手机端的数据流量包
    python 字典(dictionary)一些方法
    python 循环语句
    Charles 抓 HTTPS 包
    python RSA 加密与签名
    从零开始做一个Jmeter性能测试
    [python之路]变量和字符编码
    [python之路]简单介绍
  • 原文地址:https://www.cnblogs.com/xiaochige/p/6536384.html
Copyright © 2020-2023  润新知