提问者:小点点

编译器总是打印十六进制/八进制数


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

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


共1个答案

匿名用户

我不知道是什么?

cout<;您正在打印refval的地址(即ival的地址)。

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

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

参考数据的解调:

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

操作员地址:

 int* refPtr = &refVal;
             //^ adress of operator

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

要通过引用refval打印ival的值,请执行以下操作:

std::cout << refVal;

注意,没有特殊的语法来“取消引用”。 引用就像别名,同一名称不同。