zoukankan      html  css  js  c++  java
  • C++函数调用方式(实参形参)

    值传递方式:

    1、普通调用,形参与实参为同样的类型

    fun(int i)()

    fun(Student stud)

    ()

    main()

    {  

    fun(1);

    Student s1;  

    fun1(s1);

    }

    在函数中可以修改形参的值,但不能改变其对应的实参的值(形参的值变化无法传送到实参) 原因:在函数调用时将建立一个新的对象,是实参对象的拷贝,实参与形参分别占有不同的存储空间,无论形参是否修改都不会改变实参的值。 这种形式的虚实结合,会产生实参的拷贝。当传递的对象较大时,时间开销和空间开销都比较大。

    2、使用指针作为函数参数

    fun(int * i)

    {}

    fun(Student * stud)

    {}

    main()

    {  

    int i = 1;  

    fun(&i);  

    Student s1;  

    fun1(&s1);

    }

    其实质也是值传递方式,只是传递的值是一个地址,实参将地址传递给形参,虚实结合后,实参与形参指向同样的地址。 其操作的都是同一个对象。 虚实结合时,也会产生实参的拷贝,为形参分配内存,用来存放指针值(即地址)

    2、引用传递方式

    1、用引用作为函数参数

    fun(int& i){}

    fun(Student& stud){}

    main()

    {

     int i = 1;  

    fun(i);  

    Student s1;

     fun1(s1);

    }

    不会为形参分配存储空间(常称为建立实参的一个拷贝),而是把实参的地址传递给形参(引用名),引用名也指向实参变量

  • 相关阅读:
    javacv 通过rtsp 获取视频流 设置帧率
    Firefly-RK3399 上编译安装 OpenCV 3
    萤火虫系统(firefly) RK3399 python3 安装 tensorflow
    Linux环境创建交换分区
    python模块发布
    Docker学习
    好书收集
    python 内存管理和垃圾回收机制
    redis加分布式锁
    邀请关系设计
  • 原文地址:https://www.cnblogs.com/jiese/p/2605723.html
Copyright © 2011-2022 走看看