C++ 引用
引用 是给变量定义一个别名,也就是说它给一个已经存在的变量取另一个名字,就好比我们有身份证上的名字,还有乳名,绰号等等,反正都是同一个人
引用 针对的是变量,这个要和以后学到的
typedef
针对类型区分开来
一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量
C++ 中声明引用
可以在数据类型和变量名之间加上一个 &
符号来声明一个引用,就像下面这样
int a = 8; int& b = a;
创建引用是不能直接指向数据,只能通过原始变量,例如,下面这种是错误的
int &b = 8;
我们写一个范例看看如何声明和使用引用
/** * file: main.cpp * author: 简单教程(www.twle.cn) * * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ #include <iostream> int main () { // 声明简单的变量 int i; double d; // 声明引用变量 int& r = i; double& s = d; i = 8; std::cout << "Value of i : " << i << std::endl; std::cout << "Value of i reference : " << r << std::endl; d = 3.1415926; std::cout << "Value of d : " << d << std::endl; std::cout << "Value of d reference : " << s << std::endl; return 0; }
编译和运行以上范例,输出结果如下
Value of i : 8 Value of i reference : 8 Value of d : 3.14159 Value of d reference : 3.14159
C++ 引用 vs 指针
引用很容易与指针混淆,它们之间有两个主要的不同
-
不存在空引用。引用必须连接到一块合法的内存,也就是不能有如下的声明
int &b; // 错误 int &c = NULL; // 错误
-
引用必须在创建时被初始化。指针可以在任何时间被初始化
int &b; // 错误
C++ 引用的使用
引用通常用于函数参数列表和函数返回值
范例 | 说明 |
---|---|
引用作为参数 | 引用作为参数传给函数,这比传一般的参数更安全 |
引用作为返回值 | + 函数中返回引用,就像返回其它数据类型一样 |