zoukankan      html  css  js  c++  java
  • C++ 常量引用

    普通引用为形参的函数,一般会更改实参的值;以常量以及常量引用为形参的函数,一般不对实参进行修改。

    常量引用兼有常量和引用的优点。不会新创建一个变量然后进行拷贝,而是直接传对象,速度快,同时保证了在函数内部无法对对象进行修改。

    通常,引用的类型必须和所引用的类型一致,但常量引用在类型不匹配时,编译器首先建立一个临时变量,然后将该常量的值置入临时变量中,对该引用的操作就是对该临时变量的操作。普通引用则没有这样的过程。

    这个过程的一个作用是让不匹配的类型隐式转换成需要的常量类型。一个典型的例子如下:

    int g1(string &str){}
    int g2(const string &str){}
    int main(){
        g1(".."); //failed
        g2("..");
    }
    

    常量引用为形参时,形参指向实参的空间;而常量为形参时,编译器会给形参重新分配空间

    int f(const int x) {cout<<&x<<endl;}
    int g(const int &x) {cout<<&x<<endl;}
    int main() {
        int n=1;
        cout<<&n<<endl;
        f(n);
        g(n);
    }
    
    0x3beafe1c
    0x3beafdf0
    0x3beafe1c
    
  • 相关阅读:
    Python学习之函数
    Python学习之set集合
    python学习之循环语句
    Python学习之运算符
    python学习之变量类型
    python学习之基础语法
    DAY103
    DAY102
    DAY101
    DAY100
  • 原文地址:https://www.cnblogs.com/mollnn/p/12598961.html
Copyright © 2011-2022 走看看