1樓:二洋
首先你要理解二維陣列的真正含義,它的第一維就是一組資料的起始位址,第二維就是某組資料中的某個值.其次,你要知道a[4]所表達的意思,是指二維陣列a的每一維都是由4個元素組成的一維陣列.而編譯器可以根據你賦給a的初值個數計算它的第一維長度(元素總個數/4,如果不能整除,則長度加1,此時還應該有幾個沒有賦初值的陣列元素).
而a[3]的意思從表面上看可以成立,但問題是編譯器不能直接識別其第二維的確切長度(你可以考慮,如果總的初值個數為2時,可以認為a的第二維長度為1,也可以是2,.......),這樣就會產生錯誤.所以,可以a[4]=這樣定義,而不能定義a[3]=。
對於你補充的問題,其實我已經講了.因為賦初值是5個元素,所以5/4=1,但除不盡,所以要加1,即實際陣列a實質上定義為a[2][4],其內元素為:
1 2 3 4
5 0 0 0 (後面的三個0是系統預設值)希望對你有所幫助.^-^
請採納答案,支援我一下。
2樓:倒霉熊
#define i 3;
#define j 4; ////這兩個後面是沒有分號的另外 你用i代表3,那麼程式中所有的i都會用3進行替換,所以for(i=0;i<=3;i++)
}for(j=0;j<=4;j++)
{這些迴圈都不對。 #define不是定義變數,而是一種替換。
定義二維陣列4 4,二維陣列中的陣列元素都用鍵盤賦值。求出該二維陣列中主對角線的和C語言
include stdio.h include conio.h include stdlib.h main for i 0 i 4 i printf 此矩陣主對角線的和為 d n num include define m 4 int main int i,j,a m m sum 0 for i 0 ...
c語言關於定義二維陣列的問題,C語言中二維陣列的定義問題
焮欣 首先你要理解二維陣列的真正含義,它的第一維就是一組資料的起始位址,第二維就是某組資料中的某個值.其次,你要知道a 4 所表達的意思,是指二維陣列a的每一維都是由4個元素組成的一維陣列.而編譯器可以根據你賦給a的初值個數計算它的第一維長度 元素總個數 4,如果不能整除,則長度加1,此時還應該有幾...
二維陣列行列互換,並存到另二維陣列中
具體演算法如下 include int main int i,j,a 2 3 b 3 2 printf array a n for i 0 i 1 i 處理a陣列中的一行中各元素 for j 0 j 2 j 處理a陣列中的某一列元素 printf 5d a i j b j i a i j print...