引用:
t=90;
Int& i=t;
引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。两者都是地址的概念,指针指向一块儿内存,其内容为所指内存的地址;引用是某块儿内存的别名。
一开始遇到引用的用法时,感觉完全可以被指针取代,不明白为什么要用,后来查阅总结出以下区别——
- 不存在空引用。引用必须连接到一块合法的内存。
- 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
- 引用必须在创建时被初始化。指针可以在任何时间被初始化。
-
指针是一个实体,而引用仅是个别名
-
“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
-
指针和引用的自增(++)运算意义不一样;
-
引用不能建立引用的数组。因为数组是一个由若干个元素所组成的集合,所以无法建立一个由引用组成的集合,但是可以建立数组的引用。
引用在定义上是说引用不占据任何内存空间,但是编译器在一般将其实现为const指针,即指向位置不可变的指针,所以引用实际上与一般指针同样占用内存。
引用的常见用途在于
作为函数的参数、函数的返回值。