2015-01-11 107 views
-2

尺寸我敢肯定這件事情很瑣碎,但我看不懂,二維數組和C++

int bb5[8][8] 
= { 
       {-4,-3,-2,-5,-6,-2,-3,-4}, 
       {-1,-1,-1,-1,-1,-1,-1,-1}, 
       { 0, 0, 0, 0, 0, 0, 0, 0}, 
       { 0, 0, 0, 0, 0, 0, 0, 0}, 
       { 0, 0, 0, 0, 0, 0, 0, 0}, 
       { 0, 0, 0, 0, 0, 0, 0, 0}, 
       { 1, 1, 1, 1, 1, 1, 1, 1}, 
       { 4, 3, 2, 5, 6, 2, 3, 4} 
       }; 

這工作

int bb5[7][7] 
= { 
       {-4,-3,-2,-5,-6,-2,-3,-4}, 
       {-1,-1,-1,-1,-1,-1,-1,-1}, 
       { 0, 0, 0, 0, 0, 0, 0, 0}, 
       { 0, 0, 0, 0, 0, 0, 0, 0}, 
       { 0, 0, 0, 0, 0, 0, 0, 0}, 
       { 0, 0, 0, 0, 0, 0, 0, 0}, 
       { 1, 1, 1, 1, 1, 1, 1, 1}, 
       { 4, 3, 2, 5, 6, 2, 3, 4} 
       }; 

這是不行的,「太多初始值設定項爲int[7][7] 我在一個國際象棋引擎中使用這個數據結構,這個數據結構是爲了娛樂而從頭開始構建的,這個數組在屏幕上以圖形方式顯示,棋盤是8x8,所以我認爲int bb5[7][7]等價於(從0到7 ==大小8正確?),bu我做錯了,爲什麼?

+2

索引從'0' - '7'開始,大小必須是'8'。 –

+4

當你聲明一個大小爲7的數組時,它是從0到6. –

+1

當你聲明'int a [7];''7'不是最後一個有效索引時,它就是數組的大小。 – bolov

回答

0

陣列中[]的內部值是該陣列的大小。索引數字的起始位置爲0,因此您可以在數組中訪問的最大索引爲size - 1