[!引用很容易与指针混淆,它们之间有三个主要的不同:] 不存在空引用。引用必须连接到一块合法的内存。 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。(不可修改) 引用必须在创建时被初始化。指针可以在任何时间被初始化。
引用通常用于函数参数列表和函数返回值
引用和指针的区别
- 指针是一个实体,而引用仅是个别名
- 指针和引用的自增(++)运算意义不一样,指针是对内存地址的自增,引用是对值的自增;
量或对象的地址)的大小;
- 引用使用时无需解引用(*),指针需要解引用;
- 引用只能在定义时被初始化一次,之后不可变;指针可变;
- 引用不能为空,指针可以为空;
6.引用没有const,指针有const;(指针有“常量指针”即int * const a,但是引用没有int& const a,不过引用有“常引用”即const int &a = 1)
“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小,在32位系统指针变量一般占用4字节内存。