我刚刚开始学习 C++ 中的引用,我尝试了以下代码:
#include <iostream>
using namespace std;
int main()
{
int ival = 1024;
int &refVal = ival;
// refVal refers to (is another name for) ival
cout<< &refVal<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这个程序的输出是:
0x61feb8
Run Code Online (Sandbox Code Playgroud)
我不知道是什么?如果您觉得我在这里缺乏一些基本/非常重要的知识,请详细说明!
编辑:感谢大家的解释!抱歉问的太幼稚了!
我不知道是什么?
cout<< &refVal<<endl;您正在打印的地址refVal(这是 的地址ival)。
如果您觉得我在这里缺乏一些基本/非常重要的知识,请详细说明!
您将引用与指针混淆,并且&有两种不同的含义:
参考声明:
int& refVal = ival;
// ^ part of the type
Run Code Online (Sandbox Code Playgroud)
运营商地址:
int* refPtr = &refVal;
//^ address-of operator
Run Code Online (Sandbox Code Playgroud)
坦率地说,是的,这既基础又非常重要,应该在介绍性书籍的第一章中介绍。
要ival通过参考打印 的值refVal:
std::cout << refVal;
Run Code Online (Sandbox Code Playgroud)
请注意,“取消引用引用”没有特殊语法。引用就像一个别名,是同一个对象的不同名称。