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]
打印地址而不是元素。
似乎某种程度上它忽略了它的解引用算子。
如果你能用指针或深度帮助我,我将不胜感激。
谢谢。
答案 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]
如果您想要二维数组的特定值,那么您需要同时提供x
和y
索引
array[0][0] ... array[0][n-1]