陣列可以是線性的(一維)或多維的。只要它們給出相同的結果,這些數組之間有什麼區別?線性陣列和多維有什麼區別?
我認爲一個數組是一組內存中相同類型和大小的連續地址。這適用於多維數組嗎?
#include <iostream>
using namespace std;
int main()
{
int array1[4] = {0, 1, 2, 3};
int array2[1][4] = {0, 1, 2, 3};
int array3[1][2][2] = {0, 1, 2, 3};
cout << array1[0] << endl; // 0
cout << array2[0][0] << endl; // 0
cout << array3[0][0][0] << endl; // 0
cout << array1[2] << endl; // 2
cout << array2[0][2] << endl; // 2
cout << array3[0][1][0] << endl; // 2
return 0;
}
不同之處在於元素被訪問的方式。如果你需要一個3d結構,你不想寫'array3 [i + size_i * j + size_i * size_j * k]'但是你想寫'array3 [i] [j] [k]' – user463035818
@ tobi303這可能是一個由於空間局部的潛在好處而不虛僞。 – erip
@erip不知道我是否理解你的評論..... – user463035818