c++学习笔记(九)
引用(reference)
概念
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。
一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。
用法
变量名称是变量附属在内存位置中的标签,所以可以把引用当成是变量附属在内存位置中的第二个标签。
即可以通过原始变量名称或引用来访问变量的内容。
int i=1;
int& x=i;
在这个声明里&读作引用,这个声明可以读作 "x是一个初始化为i的整型引用"。
但是需要注意,引用必须进行初始化,而且不能直接引用常量。
int& x;//错误的写法
int& x=3;//也是错误
如果要引用常量的话,前面必须加上const。
const int& x=3;//对的写法
原因的话,是因为后面可能会对引用的进行复制,常量不能进行赋值,所以直接引用常量是错的,而加上const就好了。
使用引用和使用指针相比的话有一个好处,就是不需要测试其有效性。因为在引用一定会有指向的。
使用引用参数
实践一下,看看使用引用参数能不能交换2个函数的值
#include<iostream>
using namespace std;
void swap(int& ,int& );//使用引用参数。
int main()
{
int n1=3,n2=5;
swap(n1,n2);
cout<< n1 << "\t" << n2 <<endl;
return 0;
}
void swap(int& a,int& b)
{
int t;
t=a;
a=b;
b=t;
}
结果是成功交换,因为在使用引用参数时,传进函数的就已经不是形参,而是本体实参了。
当然这个的话指针也可以做到。但有一些使用引用的理由。
1.可以更简便地书写代码。
2.可以直接传递某个对象,而不是直接把对象复制一份。