c++ - 没有列号的二维数组给出地址?

标签 c++ arrays

int arr[][3] = {{1,3},{2,3},{6,7}};
cout << arr[0] << endl;   // W/O col' somehow give you the address, not the element.
cout << arr[0][0] << endl;

我很好奇为什么 arr[0] 打印地址,而不是元素。 它似乎以某种方式忽略了它的取消引用运算符。 如果您能在指导或深度方面帮助我,我将不胜感激。

谢谢。

最佳答案

arr是一个二维数组,arr[0]将为您提供整行(更准确地说,是该行的地址)。

更准确地说,因为 arr类型为 int[][3] arr[0]类型为 int[3] , 衰减到 int * .因此,cout << arr[0] << endl;打印一个指针。

关于c++ - 没有列号的二维数组给出地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27728906/

相关文章:

c++ - std::vector 在重新分配时无论如何调用包含对象的析构函数?

c++ - 从仅包含其迭代器的列表中删除元素

c++ - 我如何动态创建类并使用重载的构造函数?

c++ - 运行简单代码时出现巨大的延迟峰值

c++ - 动态创建包含另一个动态创建的结构数组的结构数组时的内存管理

javascript - 如何在 JavaScript 中从数组列表中获取所需的数组

C++如何引用其他类?

python - 如何将用户定义的函数应用于每个 numpy 数组元素

arrays - 如何表示一个类型为多个类继承的类的属性?

arrays - 从父类(super class)到子类的快速向下转换问题