zoukankan      html  css  js  c++  java
  • 函数返回值是引用类型,此函数当左值、右值

    函数的返回值当左值,则需要返回引用类型。左边必须是一块内存,来承接右边的值。

    函数返回值是引用,返回的是变量本身,即变量的内存。

    这个变量必须是静态的或全局的,防止函数之外内存消亡。

    #include <iostream>
    using namespace std;
    
    int func()
    {
        int a=10;
        a++;
        return a;
    }
    int& func1()//函数返回值是引用,返回的是变量本身,即变量的内存
    {
        static int a=10;//静态变量或者全局变量
        a++;
        return a;
    }
    int main()
    {
        int x,y;
        x=func();//等效于x=11,注意func()中a的内存已经消亡。
        y=func1();//函数做右值,等效于y=a,a是11。注意func1()中a的内存仍然存在。
        func1()=20;//函数做左值,等效于a=20,注意a由12变成20。func1()每出现一次,a就增1。
        cout << x <<" " <<y<<endl;
        cout<<func1()<<endl;//再次增1,输出21
        return 0;
    }
  • 相关阅读:
    INSPIRED启示录 读书笔记
    INSPIRED启示录 读书笔记
    INSPIRED启示录 读书笔记
    INSPIRED启示录 读书笔记
    INSPIRED启示录 读书笔记
    INSPIRED启示录 读书笔记
    INSPIRED启示录 读书笔记
    INSPIRED启示录 读书笔记
    INSPIRED启示录 读书笔记
    INSPIRED启示录 读书笔记
  • 原文地址:https://www.cnblogs.com/xixixing/p/12207639.html
Copyright © 2011-2022 走看看