zoukankan      html  css  js  c++  java
  • c++ 参数传递之 非引用形参 GIS

    1 非引用实参

    每次调用函数时,都会重新创建该函数所有的形参,此时所传递的实参将会初始化对应的形参。

    形参的初始化与变量的初始化一样:如果形参具有非引用类型,则复制实参的值,如果形参为引用类型(第 2.5 节),则它只是实参的别名。

    指针形参————————————————可以修改实参指针指向的值,但是不能修改实参指针

    函数的形参可以是指针(第 4.2 节),此时将复制实参指针,

    如果函数形参是非 const 类型的指针,则函数可通过指针实现赋值,修改指针所指向对象的值:

    void reset(int *ip) 
    {
    *ip = 0; // changes the value of the object to which ip points
      ip = 0; // changes only the local value of ip; the argument is unchanged
    }

    调用 reset 后,实参依然保持原来的值,但它所指向的对象的值将变为 0:

    如果不想让实参指向的值发生改变。。加个const

    void reset(const  int *ip) 


    }

    const  形参 

    如果函数使用的 形参既不是引用形参也不是const 形参,那么可以给改参数传递 const 实参,当然 非const 实参也能传递

    这种行为源于 const 对象的标准初始化规则(第 2.4 节)。因为初始化复
    制了初始化式的值,所以可用 const 对象初始化非 const 对象,

    如果函数形参是const 形参 的话,而且不是引用类型的const 形参,

    void fcn(const int i) { /* fcn can read but not write to i */ } 

    由于实参仍然是以副本的形式传
    递,因此传递给 fcn 的既可以是 const 对象也可以是非 const 对象。

     

     

     

     

  • 相关阅读:
    STA分析(四) lib model
    STA分析(三) cmos模型
    STA分析(二) multi_cycle and false
    STA分析(一) setup and hold
    UVM环境(一)
    Perl中的正则表达式(五)
    RVDS编译器
    ARM的Trust Zone技术
    001-shell基础,创建,运行
    006-mac下finder操作
  • 原文地址:https://www.cnblogs.com/gisbeginner/p/2746698.html
Copyright © 2011-2022 走看看