美文网首页
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++函数返回值为引用(&)

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

  • C++ 引用传递的学习

    C++ 引用与引用作为函数的参数C++函数的三种传递方式为:值传递、指针传递和引用传递 C++ 上课习题 刘月林2...

  • 《C++ Primer Plus》:函数探幽

    本章内容概览 内联函数 引用变量 按引用传递函数参数 默认参数 函数重载 函数模板 内联函数 内联函数是C++为提...

  • C++第5天:第84课-第94课

    引用 引用初始化 引用函数形参 引用函数返回值 引用 const不可更改形参

  • ★22.函数的形参与返回值的类型确定法则

    返回值 禁止返回局部变量的引用。 类的get函数返回值:内置类型返回值应为值类型,类类型返回值通常为const &...

  • C++ 拷贝控制(二) — 移动构造函数和移动赋值运算符

    相关文章: C++ 拷贝控制(一) — 析构函数、拷贝构造函数与拷贝赋值函数 C++ 引用类型 — 左值引用、常引...

  • 拷贝优化

    在上C++课的时候,老师会提到C++函数传值和传引用的区别,特别会强调传值时,会产生一次拷贝。如果返回值,那么返回...

  • Python_函数定义

    函数定义格式def <函数名>(参数): [函数体] [返回值] 引用函数:importfro...

  • C++ RVO

    刷知乎的时候看到这个问题,C++函数返回值拷贝问题?,觉得有趣,因此写了这篇博客。 函数如何返回值 函数返回值的传...

  • 2020-03-13

    一. 命名空间 二. 函数参数默认值 三. 引用(引用,常引用,引用作为函数的参数与返回值) 四...

网友评论

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

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