1.对一个普通变量的引用
void reference1()
{
// 定义一个整形变量
int i=10;
// 传递一个整形引用
// 一个引用必须要初始化
int &r=i;
// 给引用赋值
r=110;
// 结果就是所有的值都一样,本质上是同一块地址
cout<<r<<endl;
cout<<i<<endl;
}
2.对一个容器的引用
// 函数参数作为引用
// 需要传递一个vector int 的引用给v
void init(vector<int>& v)
{
for(int i=0;i<v.size();i++)
{
v[i]=i;
}
for(int i=0;i<v.size();i++)
{
cout<<v[i]<<endl;
}
}
void reference2()
{
// 定义一个vector int a 10个
vector<int> a(10);
// 传递a的引用
init(a);
}
3.引用的原理
// 引用的原理
void reference3()
{
// 定义一个变量
int a=10;
// 定义一个引用,引用a
int &ref=a;
// 一个引用实际上是一个指针常量,比如一个指向int的指针常量 ::const* int pointer;
// 一个指针常量指向的地址是不可以改变的。
// 所以说,一个引用实际上就是一个简化的指针常量
int b=20;
// 定义一个指针常量,指向b的地址
int* const pointer=&b;
// 改变引用地址的值
ref=10;
// 改变指针常量地址的值
*pointer=20;
// 试图改变一个指针常量必将发生错误
// pointer=&a;
// 打印值
cout<<a<<endl;
cout<<b<<endl;
cout<<ref<<endl;
cout<<*pointer<<endl;
// 打印地址
cout<<&a<<endl;
cout<<&ref<<endl;
cout<<&b<<endl;
cout<<&*pointer<<endl;
}