zoukankan      html  css  js  c++  java
  • &&引用&&

    函数的返回值也可以是引用,例如:

    double heights[] = {10.9, 18.7, 28.9, 67.44};

    double & setHeights(int i)

    {

      return heights[i];

    }

    int main (int argc, const char * argv[])

    {

      cout<<heights[0]<<endl;

      setHeights[0] = 20.7;//调用setHeights函数,返回heights[i]的引用,然后进行赋值

      cout<< heights[0] <<endl;

    }

    如果函数返回的是引用,最好不要是局部变量,局部变量出了花括号有可能被回收

    int & sum(int a, int b)
    {
        int temp = a + b; // 21
        
        return temp;
    }
    
    int main(int argc, const char * argv[])
    {
    
        int n = sum(10, 11);
        
        int &f = sum(10, 11);
        
        cout << f << endl;
        cout << n << endl;
        
        int *p = NULL;
        
        int &af;
        return 0;
    }

    上面的代码中,如果先输出f会是21,如果后输出f,其值就不定了,因为cout会动缓冲区内存,f被冲掉了

    另外引用和指针的区别

    --引用没有独立的存储空间,指针有自己独立的存储空间

    --引用只能在定义时初始化一次,之后不可变;而指针式可变的

    --引用不能为空,指针可以为空

    --sizeof引用-得到的是所引用变量的大小;sizeof-指针得到的是指针的大小

    --引用和指针的自增++自减--运算含义不一样

  • 相关阅读:
    Linux 命令查找文件中某个字段所存在的位置
    PHP in_array() 函数
    php一维数组如何追加到二维数组
    电脑切换窗口
    微擎前端逻辑判断的时弹框
    JDBC批量处理
    数据库事务
    处理BLOB
    JDBC自动生成主键值
    JDBC的元数据
  • 原文地址:https://www.cnblogs.com/xyzaijing/p/3613349.html
Copyright © 2011-2022 走看看