编译器始终打印十六进制/八进制数字
compiler is always printing a hexadecimal/octal number
我刚刚开始学习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;
请注意,没有特殊的语法来"取消引用引用"。引用就像别名,是同一对象的不同名称。
相关文章:
- 编译器始终打印十六进制/八进制数字
- 在 C++ 中使用带有十六进制十进制和八进制数的 unsetf
- C++ 在地板函数之后以十六进制打印数字
- 如何使系统在十六进制数之前打印 0x,在八进制数之前打印 0?
- 在十六进制中读取的数字在C 中给出了错误的数字
- 将十六进制的数字与零串联
- 从char阵列中提取十六进制数字
- 十六进制到十六进制char []
- 如何在 c++ 中将十六进制数字转换为字符
- 使用字符串格式限制十六进制数字的数量
- 从输入中找到连续十六进制数字的最大数量
- 努力理解一个以十六进制、十进制、bin 和 dec 计算数字总和的程序
- 将十六进制数字从无符号字符转换为字符串
- 从 bin 文件 -c++ 中读取十六进制数字为每个字符 2 位数字
- 超过两个数字十六进制
- 重载输出运算符给出十六进制数字而不是字符串
- 将十六进制数的 char[] 转换为对应于 ASCII 表中十六进制数字的字母的 char[] 并反转
- 我可以将指针地址(即十六进制整数)转换为C 中的十进制和八分位基础
- 以十进制、八进制和十六进制表示法标识整数文本是否与转义字符中的整数文本相同
- 处理从十六进制到十六进制的转换