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

时间:2015-01-01 06:55:59

标签: 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]打印地址而不是元素。 似乎某种程度上它忽略了它的解引用算子。 如果你能用指针或深度帮助我,我将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:1)

由于arr是一个二维数组,arr[0]会给你一整行(更确切地说,就是该行的地址)。

更确切地说,由于arr类型为int[][3] arr[0],因此类型为int[3],其衰减为int *。因此,cout << arr[0] << endl;打印指针。

答案 1 :(得分:0)

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]