#include<iostream>
using namespace std;
int main()
{
int a =10;
int & ra =a; //别名,但不占用空间
//定义时必须初始化
ra=100; //a的值也会发生改变
cout <<a<<endl;
cout << ra<< endl;
}
定义时的初始化: “=”的含义是绑定
赋值时的: “=”代表拷贝
(本质是不同的)
int a; //声明变量a
int& ra = a; //声明一个引用,名字是ra,ra引用了a
注意,ra声明的时候必须同时给出它到底引用了谁
int& ra; //只声明不指明是不对的。
ra=b //编译时不会报错,因为此时是给a赋值,而不是引用b
int * & rpa=&a; //error 需要变量 &a为常量
int *p;
int * & rpa=p;
常量引用 (const修饰的引用类型可以用常量初始化 !!!!特例)