c++ - 多维数组打印十六进制数字而不是数组的内容。为什么?
问题描述
...C++.....................
#include <iostream>
using namespace std;
int main() {
int troysArray[3][3] = {
{3,2,7},
{4,5,8},
{1,9,2},
};
int i;
int j;
for (i = 0;i < 3;i++)
for (j = 0;j < 3;j++){
cout << troysArray[i] << endl;
cout << troysArray[j] << endl;
};
return 0;
}
.......................
C++
当我实际尝试打印数组的内容时,为什么上面的代码会打印出十六进制数字。(初学者/刚刚练习)
我做错了什么导致这种情况发生?
解决方案
std::ostream
<<
运算符的最佳重载troysArray[i]
是void*
(利用指针衰减),它输出指针的地址。
如果你想要一个元素,请使用troysArray[i][j]
&c。
推荐阅读
- python - 如何从Python中的字符串中间获取某些短语
- onelogin - 带有自定义参数的 SAML 设置断言
- python - 如何替换数据框中的 Year 并将该值乘以 Pandas 中的 12
- authlib - clients = self.AVAILABLE_CLIENTS[name] KeyError: 'requests' flask authlib client
- node.js - fastify-mongodb : "mongo" 在访问时未定义
- python - 如何使用 pyplot 创建曲面图?
- kotlin - 如何将 Kotlin 代码中的 null 传递给 Java 库中将 String 作为参数的方法?
- java - 让 Eclipse 自动静态导入类
- ruby-on-rails - 获取具有包含特定值的数组的所有对象
- javascript - 窗口宽度中的Jquery多个条件类似于媒体查询