//引用做函数的返回值 //注意 : 不要返回局部变量引用 //用法 : 函数调用作为左值 #if(0) #include int& test01() { int a = 10; //局部变量存放在四区中的 栈区 return a; } int& test02() { static int a = 10; //静态变量存放在全局区 , 全局区上的数据在程序结束后由系统释放 return a; } int main() { //int& ref = test01(); //std::cout << " ref = " << ref << std::endl; // 第一次结果正确 , 是因为编译器做了保留 //std::cout << " ref = " << ref << std::endl; // 第二次结果错误 , 是因为a的内存已经被释放 int& ref2 = test02(); std::cout << " ref2 = " << ref2 << std::endl; test02() = 1000; //如果函数的返回值时引用,这个函数调用可以作为左值 system("pause"); return 0; } #endif