C++ 引用变量在C++;商店?
指针存储/分配一个内存地址 那么引用变量呢 它存储对象的实际值,就像堆栈上的任何其他非指针简单变量一样C++ 引用变量在C++;商店?,c++,C++,指针存储/分配一个内存地址 那么引用变量呢 它存储对象的实际值,就像堆栈上的任何其他非指针简单变量一样 谢谢 引用本身不包含任何内容。C++标准甚至声明不需要实现任何一个存储来存储引用。它实际上只是它引用的对象或函数的别名。尝试获取引用的值将获取它引用的对象或函数的值(在这种情况下,您将获得一个函数指针,就像您尝试使用其原始名称从函数中获取值一样) 当然,当您在较低级别上查看汇编代码时,引用就像指针一样。但在语言层面上,它们是完全不同的动物。例如,对const的引用可以绑定到临时变量,它们是实现
谢谢 引用本身不包含任何内容。C++标准甚至声明不需要实现任何一个存储来存储引用。它实际上只是它引用的对象或函数的别名。尝试获取引用的值将获取它引用的对象或函数的值(在这种情况下,您将获得一个函数指针,就像您尝试使用其原始名称从函数中获取值一样) 当然,当您在较低级别上查看汇编代码时,引用就像指针一样。但在语言层面上,它们是完全不同的动物。例如,对const的引用可以绑定到临时变量,它们是实现复制构造函数所必需的,用于重载运算符,并且不能将它们放入数组中(即使您初始化了数组的所有元素),因为引用不是对象(与指针相反)。它们可能听起来很琐碎,但却是引用类型 它存储对象的实际值,就像堆栈上的任何其他非指针简单变量一样 不完全正确:因为您没有两个值的副本(一个副本在对象中,另一个副本在对对象的引用中);相反,引用可能实现为指向对象的指针 指针和对象之间的差异:
- 引用不能为空
- 引用不能取消初始化(定义时必须初始化)
- 无法将引用更改为引用其他对象