C++ 变量、引用、指针

想要明确的问题:

  1. 变量的变量名与变量值是如何实现对应关系的?
  2. 引用是什么?是如何实现的?
  3. 指针是什么?是如何实现的?

变量的变量名与变量值是如何实现对应关系的?

变量只存在与编译阶段之前,是为了编程者方便表示而存在的,编译之后是转换为了相应的内存空间,编译器完成了变量名与变量值存储的内存空间的地址的映射。

引用是什么?是如何实现的?

引用是一个复合数据类型。引用不是对象,只是为一个已经存在的对象所起的另一个名字。定义引用时,并不创建新的对象,而是把引用和其初始值绑定。

参考链接
文中讲述了以下问题:

  1. 引用的概念
  2. 引用的本质
  3. 引用不能绑定到临时数据
  4. const引用和临时变量
  5. const引用与类型转换

指针是什么?是如何实现的?

指针是一个复合数据类型,它的值是该指针所指向的对象的存储地址。

不管是指向什么类型的指针,其长度都是一样的,但是指针的类型会影响对指针进行加法运算时的运算方式,运算的结果为指针的值加上 (加数 乘以 指针指向对象类型的长度)。

指针和引用的一些区别

  • 指针本身是一个对象,而引用不是一个对象。
  • 指针在定义是不必赋初值,而引用在定义时必须赋初值。
  • 指针可以更换自己指向的对象,而引用是不能更换自己绑定的对象的。