4、引用做函数返回值.cpp 763 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //引用做函数的返回值
  2. //注意 : 不要返回局部变量引用
  3. //用法 : 函数调用作为左值
  4. #if(0)
  5. #include <iostream>
  6. int& test01()
  7. {
  8. int a = 10; //局部变量存放在四区中的 栈区
  9. return a;
  10. }
  11. int& test02()
  12. {
  13. static int a = 10; //静态变量存放在全局区 , 全局区上的数据在程序结束后由系统释放
  14. return a;
  15. }
  16. int main()
  17. {
  18. //int& ref = test01();
  19. //std::cout << " ref = " << ref << std::endl; // 第一次结果正确 , 是因为编译器做了保留
  20. //std::cout << " ref = " << ref << std::endl; // 第二次结果错误 , 是因为a的内存已经被释放
  21. int& ref2 = test02();
  22. std::cout << " ref2 = " << ref2 << std::endl;
  23. test02() = 1000; //如果函数的返回值时引用,这个函数调用可以作为左值
  24. system("pause");
  25. return 0;
  26. }
  27. #endif