1.什么是变量名?
- 变量名实质上是一段连续存储空间的别名,是一个标号(门牌号)
- 程序中通过变量来申请并命名
内存空间
- 通过变量的名字可以使用存储空间
2.引用
在C++中新增了引用的概念,引用可以看做一个已定义变量的别名。
引用语法:Type &name = var
2.1普通引用
普通引用在声明时必须用其他的变量进行初始化看,可以理解为是一个只读的常量。
2.2引用的意义
- 引用作为其他变量的别名而存在,在一些场合可以代替指针
- 引用相对于指针来说具有更好的可读性和实用性
2.3普通引用有自己的内存空间么?
- C++编译器在编译的过程中使用
常指针
作为引用的内部实现,因此引用所占用的空间大小与指针相同 - 从使用的角度,引用会让人误会其只是一个别名,而没有自己的存储空间,这是C++为了实用性而做出的细节隐藏
2.4常引用
- 在C++中可以声明const引用:
const Type &name = var
- const引用让变量name拥有只读属性
- 可以使用字面值常量初始化const引用,此时C++编译器会为字面值常量分配内存空间,并将引用名作为这段空间的别名
2.5总结
- 普通引用相当于
Type *const p
(常指针) - const引用相当于
const Type *const p