C/C++ / C++ 学习笔记
引用
引用算是对 C 语言的又一个扩充,可以看作是数据的一个别名,定义方式类似于指针,只是用 & 取代了 。
1. 说明
引用算是对 C 语言的又一个扩充,可以看作是数据的一个别名,定义方式类似于指针,只是用 & 取代了 *。
指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。
而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。
2. 使用
格式:type &name = data;
type 是被引用的数据的类型,name 是引用的名称,data 是被引用的数据。引用必须在定义的同时初始化,以后不能再引用其它数据,这有点类似于常量(const 变量)。
#include <iostream>
using namespace std;
int main(){
int a = 8;
int &b = a;
cout<<a<<", "<<b<<endl;
cout<<&a<<", "<<&b<<endl;
return 0;
}
-
注意
-
引用在定义时使用
&,使用时不能加,加&代表取地址,这和指针相反; -
引用不能绑定到临时数据;引用作为函数的返回值时,不能返回局部变量的引用;
-
const 引用只能读,与绑定的对象是否是 const 无关;
-
非 const 引用可读可写,只可与非 const 对象绑定;
-
署名-非商业性使用-相同方式共享 4.0 国际(CC BY-NC-SA 4.0)
本文可自由转载与修改,但需保留作者署名与出处链接,不得用于商业用途,且衍生作品需以相同方式共享。 转载请注明:MacLodge's Blog · 引用
本文可自由转载与修改,但需保留作者署名与出处链接,不得用于商业用途,且衍生作品需以相同方式共享。 转载请注明:MacLodge's Blog · 引用