美文网首页
C++函数返回值为引用(&)

C++函数返回值为引用(&)

作者: 糖葫芦_4273 | 来源:发表于2018-10-27 14:43 被阅读0次
    int function1(int & aa)
    {
        return aa;
    }
    int & function2(int & aa)
    {
        return aa;
    }
    int main()
    {
        int a = 10;
        int b;
        b = function1(a);//function1()的返回值先储存在一个临时变量中,
                         //然后再把临时变量赋值给b
        function1(a) = 20;//不OK function1()的返回值为临时变量,不能赋值
        function2(a) = 20;//OK  此时a的值变成了20
    }
    

    说明:若函数的返回值为引用(&),则编译器就不为返回值创建临时变量了。直接返回那个变量的引用。所以千万不要返回临时变量的引用,如下:

    int & function()
    {
        int b = 10;
        return b;//不OK 等函数返回后,b就消失了,引用了一个消失的东西
                 //程序会懵逼的。指针也一样。
    }
    int main()
    {
        int a;
        a = function();//function()返回的东西已经消失了,引用也就不存在了
    }
    

    相关文章

      网友评论

          本文标题:C++函数返回值为引用(&)

          本文链接:https://www.haomeiwen.com/subject/sqrdtqtx.html