不带列号的二维数组提供地址

2-D array without column number gives address?

本文关键字:地址 二维数组      更新时间:2023-10-16
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]会给你一整行(更准确地说,是该行的地址)。

更准确地说,因为arrint[][3] arr[0]型的,所以是int[3]型,衰变为int *。因此,cout << arr[0] << endl;打印一个指针。

array[0]保存array[0][0...n-1]值的地址,因此只有cout << arr[0];打印自arr[0] is the pointer to the values in arr[0][0..n-1]以来的地址

如果你想要一个二维数组的特定值,那么你需要同时给出xy索引,比如

array[0][0] ... array[0][n-1]