引用
引用构造了对象的一个同义词,是C++对象的另一个名字。在实际程序中,引用的主要作用是作函数的形参。
什么是引用
引用是一种复合类型1,它通过在变量名前添加“&”来定义。在使用引用的情况下,每一种引用类型都关联到某一其他类型。C++不能定义引用类型的引用,但是可以定义任何其他类型的引用。
int a = 100;
int &refa = a; // &refa引用a
int &refa = b; // error:引用对象必须初始化
int &refa = 10; //error:右值必须是对象
什么是const
const是一个限定符,被const限定的变量其值不会被改变。所以,const变量必须在定义时就被初始化。
const int bufSize = 512;
如上定义了一个const变量bufSize。编译器将在编译过程中把用到该变量的地方都替换成对应的值。也就是说,编译器会找到代码中所有用到bufSize的地方,然后用512替换。
const引用和非const引用
const引用是指向const对象的引用。const引用必须被定义为const类型。
const int a = 100;
const int &refa = a; // correct:引用和被引用都是const类型
int &refa = a; // error:引用不是const类型
const引用可以读取但是不可以被修改引用对象,任何对const引用进行赋值都是不合法的,它适用指向const对象的引用,而非const的引用不适用于指向const对象的引用。
- 复合类型是指用其他类型定义的类型。 ↩