2017-04-23 65 views
-3

我想輸出一個四維的int類型數組的內容。然而,輸出是正確的,但有一些尾隨的零,我不瞭解它們的來源。任何人都有線索?int數組尾隨零

源代碼:

int main(int argc, char **argv) { 
int i,j,k,m; 

int nmArrays[5][5][5][5]= {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}}; 

for(i=0;i<5;i++){//subArray 0,0 

    for(j=0;j<5;j++){//subArray 1,0 

     for(k=0;k<5;k++){//subArray 2,0 

      for(m=0;m<5;m++){//subArray 3,0 

      cout<<nmArrays[i][j][k][m]; 
       } 
      } 

    } 

cout<<""<<std::endl; 
} 

getchar(); 

} 

輸出:

12345000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 
678910000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 
1112131415000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 
1617181920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 
+1

你期望輸出什麼?你的數組有625個條目;您只爲其中的20個設置非零值。所以你應該在輸出中得到605尾隨零。 –

+2

您有一個5 * 5 * 5 * 5元素的數組,但只能用4 * 5顯式值進行初始化。 –

+1

該數組包含625個值,並且您只給出20個值。其餘部分默認設置爲零。 –

回答

-2

{{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}};是2 d陣列,更具體地它是5X5矩陣。

你在找什麼是5x5x5x5數組。

更多的見解:你的第一個初始化列表{1,2,3,4,5},用於填充大小5x5x5的第一子陣列和補零,因爲你只提供第一5項,不125值。 類似的是其餘子陣列的行爲。

爲簡單起見,假設您的5x5x5x5數組爲{ 5x5x5 subaary no 0,5x5x5 subaary no 1,5x5x5 subaary no 2,5x5x5 subaary no 3,5x5x5 subaary no 4}。所以相應地,您的初始化程序列表用於初始化用零填充的每個子數組。

+0

不,它是數字列表用逗號分隔並用大括號分隔。 'nmArrays'是數組,它實際上是4維的。 (好吧,我們將數組描述爲二維數組等)。 –

+0

@ M.M,我的朋友在C++中沒有真正的內在列表。想想它如何奠定在記憶中! – v78

+2

支撐列表根本不放在內存中。只有'int nmArrays [5] [5] [5] [5]'的聲明指定了內存佈局。然後,初始化程序的列表適合該內存佈局。該列表沒有任何內部佈局。 –

-1

任何人都有線索?

你在做什麼是初始化4*5 = 20元素(理論上是2D矩陣,但在內存中它總是一個數組)。 雖然你有一個5*5*5*5= 625 elements)矩陣。

所以,你沒有初始化的所有位置都被0填充。

+0

你應該編輯你的其他答案,而不是刪除它併發布另一個相同的 –

+0

@granmirupa謝謝。 – m88

+0

@ M.M,這是沒有解釋答案有什麼問題而不合格的原因? – granmirupa