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对象,使用引用;

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

  • 相关阅读:
    python中unicode、utf8、gbk等编码问题
    git常用操作
    python List&Set&Dict交集、并集、差集
    VIM的高级使用
    Logger级别和输出的地方
    Eclipse+pydev 常用快捷键
    架构相关领域的学习材料(转)
    深入浅出之正则表达式(一)
    深入浅出之正则表达式(二)
    软件project总结
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4498120.html
Copyright © 2011-2022 走看看