C++中的引用
来源:互联网 发布:php图像乱码 编辑:程序博客网 时间:2024/06/08 12:36
“引用“实际上是给一个已知变量起个别名,对引用的操作也就是对被它引用的变量的操作。C++中的变量名对应着内存的存储位置,可以使用一个特定内存地址访问到它。
引用则引入了变量的另一个名字(别名), 它和这个变量具有同一内存地址。
引用必须进行初始化,而且一旦初始化后,就不能再成为其它变量的别名。
声明一个引用的格式如下:
数据类型 &引用名 = 已定义的变量名;
例如:
#include <iostream>using namespace std;int main(){int i = 2;int &j = i;i = 3; //改变i或j的值,另一个值也随之改变。//j = 5;cout << "i = " << i << endl;cout << "j = " << j << endl;return 0;}
常引用
使用const修饰符可以声明引用, 被const声明的引用为常引用,不能通过常引用更新对象的值。
定义格式如下:
const 类型 & 引用名
#include <iostream>using namespace std;int main(){int m = 10;const int &n = m;m = 5; //正确:可以更新m的值//n = 5; //错误:不能通过n更新m的值cout << "m = " << m << endl;cout << "n = " << n << endl;return 0;}
在引用作为参数传递时:
#include <iostream>using namespace std;void swap(int &x, int &y){int temp;temp = x;x = y;y = temp;}int main(){int a = 3, b = 5;swap(a, b);cout << "a = " << a << endl;cout << "b = " << b << endl;return 0;}
函数swap(int &x, int &y)就是形参的引用声明。
在调用swap(a, b)时, 相当于执行:int &x = a, int &y = b;
引用作为返回类型
引用返回函数的原型声明形式为:
类型名 & 函数名(形式参数表);
#include <iostream>using namespace std;int &add(int &x, int &y){//int z; //错误//z = x + y; //错误//return z; // 错误:局部自动型变量在调用后不存在,不能作为引用返回y = x + y; // 正确:内存空间在本次函数调用后仍然存在return y; // 正确}int main(){int a = 3, b = 5, sum;sum = add(a, b);cout << "sum = " << sum << endl;return 0;}
说明:
(1)."&"不是取地址符, 而是引用运算浮
(2).在声明一个引用的同时,如果不是作为函数的参数或返回值类型,就必须对它进行初始化,
来明确引用是哪一个变量的别名,以后在程序中不可改变这种别名关系。
(3).引用只是某一个变量的别名,系统不为引用另外分配内存空间,与所代表的变量占同一内存
(4).并不是任何类型的数据都可以有引用,不能建立void型引用,引用的引用,指向引用的指针,
引用数组。
0 0
- c语言中的引用
- 【C++】:C++中的引用
- 深入探讨C 中的引用
- 深入探讨C 中的引用
- C++/CLI中的引用类型
- 深入探讨C 中的引用
- C++中的引用
- [C++]C++中的引用(转)
- 【引用】C中的类型转换
- C语言中的引用调用
- 深入探讨c++中的引用
- C/C++中的指针、引用和JAVA中的引用
- C/C++中的引用和指针
- c语言形参中的引用变量
- C/C++中的引用和指针
- C/C++中的引用和指针
- c语言实现cpp中的引用传递
- C和C++中的引用和指针
- poj 3225 关于集合运算
- iOS UIView方法使用详情UIView : UIResponder
- Android开发总结
- 【uml】之类图中的关系
- Android开发之旅:环境搭建及HelloWorld
- C++中的引用
- 项目管理心得:一个项目经理的个人体会、经验总结
- c++中虚函数与功能晚绑定
- C/C++中extern关键字详解
- 多线程概念
- 实战4--读入文件统计
- Java_JavaEE_轻量_Struts2文件上传闲谈;
- 参数和方法重载
- 九度1527:最大子数组