c++函数返回值的引用
2015-09-12 16:16
232 查看
最近在复习丢掉的c++知识点,复习到引用时发现一个很有趣的点,原网址是http://c.biancheng.net/cpp/biancheng/view/2762.html
#include <iostream>
using namespace std;
int &f();
int x;
int main ( )
{
f() = 100;
cout << x << endl;
return 0;
}
int &f()
{
return x;
}
许多人都认为第9句错了,少数人认为第4句可能有问题。事实上,这个程序完全正确。
上面这个函数的返回值是引用类型,通过函数结果的设置反过来去改变“源头”数据,这种“逆向引用”为C++增强了很多功能,当然也有许多需要注意的地方。
还是第一次碰到“结果改变源头”,哈哈,这是个不错的网站。
作为函数返回值的引用类型
下面的代码略有深度,初学者如果无法理解请跳过。请先看下面的程序,有没有问题?#include <iostream>
using namespace std;
int &f();
int x;
int main ( )
{
f() = 100;
cout << x << endl;
return 0;
}
int &f()
{
return x;
}
许多人都认为第9句错了,少数人认为第4句可能有问题。事实上,这个程序完全正确。
上面这个函数的返回值是引用类型,通过函数结果的设置反过来去改变“源头”数据,这种“逆向引用”为C++增强了很多功能,当然也有许多需要注意的地方。
还是第一次碰到“结果改变源头”,哈哈,这是个不错的网站。
相关文章推荐
- 详解C++中的一维数组和二维数组
- C语言中的内存分布
- 隔一个月生兔子的C语言实现
- c/c++中几个重要的指针概念
- C++父类,不能缺的虚析构函数
- 深入理解c++枚举法
- 实现两个大数相加!
- C++中new与delete问题学习
- c++基础知识
- 黑马程序员——C语言笔记之预处理指令
- c++中的前置声明
- c++ 析构函数为虚函数的问题
- error C2719: "_Val": 具有__declspec(align('16'))的形参将不被对齐
- 第二周项目2程序的多文件组成
- c++11——基于范围的for循环
- C++:构造函数和析构函数能否为虚函数
- C++设计模式——单例模式
- C++的sort函数逆序排序
- c语言-预处理指令
- ubuntu12.04 安装eclipse C++,并配置交叉编译工程