编译器始终打印十六进制/八进制数字

compiler is always printing a hexadecimal/octal number

本文关键字:八进制数字 十六进制 打印 编译器      更新时间:2023-10-16

我刚刚开始学习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;
}

其中,该程序的输出是:

0x61feb8

我不知道这是什么? 如果您觉得我在这里缺少一些基本/非常重要的知识,也请详细说明!

编辑:感谢大家的解释!对不起,太愚蠢的问题!

我不知道

它是什么?

cout<< &refVal<<endl;打印refVal的地址(即ival的地址(。

如果您觉得我在这里缺少一些基本/非常重要的知识,也请详细说明!

您将引用与指针混淆了,&有两种不同的含义:

参考声明:

int& refVal = ival;
// ^ part of the type

地址运算符:

int* refPtr = &refVal;
//^ address-of operator

坦率地说,是的,这既是基本的,也是非常重要的,它应该在介绍性书籍的第一章中介绍。

要通过引用refVal打印ival的值:

std::cout << refVal;

请注意,没有特殊的语法来"取消引用引用"。引用就像别名,是同一对象的不同名称。