zoukankan      html  css  js  c++  java
  • 參数传递(引用,指针,值传递)C++11

    C++中,函数的參数传递方式有值传递、地址传递。传地址有指针和引用方式。
    在函数參数中,传地址的理由有:
    1.使被调函数能够改动主调函数中的数据对象;
    2.传地址能够降低数据拷贝,提高程序运行速度。

    那么,何时使用值传递,何时使用地址传递(指针和引用)?
    以下是一些写代码时会遇到的一些情况

    被调函数使用參数对象时,不会改动数据对象

    1. 假设要传入函数的数据对象较小,比方是内建数据类型或小规模的结构体,那么使用值传递;
    2. 假设数据对象是数组,那么使用指针(这也是你唯一的选择)。指针加入const修饰;
    3. 假设数据对象是大规模的结构体,使用const指针或const引用;
    4. 假设数据对象是class对象,使用const引用。这也是C++中传递class对象的标准做法;

    被调函数使用參数对象时,会改动数据对象

    1. 数据对象是内建数据类型,使用指针(func(&var)表明函数中要改动var,比使用引用的调用形式func(var)可读性好);
    2. 数据对象是数组,指针是唯一的选择;
    3. 数据对象是结构体,使用指针或引用;
    4. 数据对象是class对象,使用引用;

    当然,以上仅仅是普通情况。特殊情况另外讨论。

  • 相关阅读:
    hdu 4123 树形dp+rmq
    POJ 2761 Feed the dogs 求区间第k大 划分树
    hdu 4585 shaolin 平衡树
    *hdu 4616 Game 树形DP
    hdu 5379 Mahjong tree 树形DP入门
    CF 581F Contest Page 树形DP
    hdu 2778 LCR 模拟题
    hdu 2896 病毒侵袭 AC自动机
    hdu 2222 Keywords Search AC自动机模板题
    透过c的编程原则,来规范自己现在的一些编程习惯
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4498120.html
Copyright © 2011-2022 走看看