引用是 C++ 的新增内容,在实际开发中会经常使用;C++ 用的引用就如同C语言的指针一样重要,但它比指针更加方便和易用,有时候甚至是不可或缺的。
同指针一样,引用能够减少数据的拷贝,提高数据的传递效率。
引用(Reference)是 C++ 相对于C语言的又一个扩充。引用可以看做是数据的一个别名,通过这个别名和原来的名字都能够找到这份数据。引用类似于 Windows 中的快捷方式,一个可执行程序可以有多个快捷方式,通过这些快捷方式和可执行程序本身都能够运行程序;引用还类似于人的绰号(笔名),使用绰号(笔名)和本名都能表示一个人。
引用的实例:
#include <iostream> using namespace std; int main() { int a = 99; int &r = a; cout << a << ", " << r << endl; cout << &a << ", " << &r << endl; return 0; }
运行结果:
99, 99
0x28ff44, 0x28ff44
注意,引用在定义时需要添加&
,在使用时不能添加&
,使用时添加&
表示取地址。下面是一个例子,注意理解指针和引用的用法:
#include<iostream> using namespace std; int main(){ int v1; char v2[10]; cout<<"v1的内存地址:"<<&v1<<endl; cout<<"v2的内存地址:"<<&v2<<endl; int val=10000; int *pval; pval=&val; cout<<"val的值:"<<val<<endl; cout<<"val的内存地址:"<<pval<<endl; cout<<"val的值:"<<*pval<<endl; cout<<"val的内存地址::"<<*&pval<<endl; cout<<"val的值"<<*&val<<endl; }
运行结果:
v1的内存地址:0x6dfeec
v2的内存地址:0x6dfee2
val的值:10000
val的内存地址:0x6dfedc
val的值:10000
val的内存地址::0x6dfedc
val的值10000