1樓:匿名使用者
m為行,n為列
一、二維陣列的定義
二維陣列的定義格式為:
型別說明符 陣列名[常量表示式1][常量表示式2];
其中常量表示式1表示第一維下標的長度,說明陣列的行數,常量表示式2 表示第二維下標的長度,說明陣列的列數。
例如:int a[3][4];
該宣告定義了一個3行4列的二維陣列,陣列名為a,該陣列的下標變數共有3×4=12個,如圖5-4所示。
a[0][0]a[0][1]a[0][2]a[0][3]
a[1][0]a[1][1]a[1][2]a[1][3]
a[2][0]a[2][1]a[2][2]a[2][3]
圖5-4 二維陣列
二維陣列在概念上是二維的,其下標在兩個方向上變化,即行和列。從圖中可以看出,二維陣列的第一維決定行數,第二維決定列數。在記憶體中是逐行存放,即放完一行之後順次放入第二行,如圖所示。
a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1] … a[2][3]
二維陣列的儲存
陣列a的定義宣告為int型別,該型別佔兩個位元組的記憶體空間,所以陣列共佔空間:12*2=24個位元組。
二、二維陣列的初始化
同一維陣列相同,二維陣列也可以進行初始化操作,即在陣列定義的同時給各下標變數賦以初值。下面是幾種不同的初始化方式:
1、對所有陣列元素初始化:
int a[3][4]=,,};
賦值情況如圖5-6所示。
80759277
61658671
59637090
圖5-6 二維陣列的賦值
等價於:
int a[3][4]=;
當為所有元素初始化時會自動按行賦值,因此可以省略區分行的{}。
以上兩種形式還可以進行簡化,當所有元素有初值時可以省略第一維,即行號:
int a[ ][4]=;
預設值為3,取所有可能資料的最小數。
2、只對部分元素賦初值,未賦初值的元素自動取0值。
例如:int a[3][4]=,,};
是對每一行的第一列元素賦值,未賦值的元素取0值。 賦值後各元素的值為:
10 0 0 0
20 0 0 0
30 0 0 0
而若有 int a[3][4]=,};
賦值後的元素值為:
10 0 0 0
0 20 0 0
0 0 30 0
以上兩種形式的行數已經確定,這種情況下也可以省略第一維:
int a[4]=,,};
int a[4]=,};
2樓:匿名使用者
假設一下 m = 1 n = 5 m++ n++ (之所以m等於1 n等於5 是讓你好區分 以免看混)
1 5, 1 6, 1 7, 1 8, 1 92 5, 2 6, 2 7, 2 8, 2 93 5, 3 6, 3 7, 3 8, 3 9不用再繼續寫了吧 我理解就這個意思沒太多內容 至於那些書本上咬文嚼字的東西網上到處都是 正好鍛鍊下你查閱資料的能力。
3樓:匿名使用者
m=行,n=列。
二維陣列定義法:
int a[12][2];
定義時行與列必為常量。
引用法類似於定義法,只不過可用變數罷了。
定義是可初始化,如
int a[2][3]=,};
初始化時,可將行省略:
int a[3]=,};
字元型(char)陣列,可輸入字串:
char c="china";
這種用法僅限於一維陣列
4樓:薔秋梵同
m 是行,
n是列二維陣列是多個一維陣列
5樓:
m是行,n是列。
就是n一個迴圈之後,m才加1
6樓:匿名使用者
m代表行,n代表列,行列都從0開始,所以為0-m-1行,0-n-1列
7樓:人士
當然是m是行,n是列了。。
其實二維陣列就是多個一維陣列,,它的儲存方式是先第一行,後面接著是第二行......
C語言簡單問題,一個簡單c語言小問題?
程式沒有錯誤,不過輸入時注意要加逗號例如12,13,14規範點的話逐個輸入 scanf d a 這樣就不會出現錯誤了。一個簡單c語言小問題?a a b這個等價於a a a b 所以a a a b,故a b c語言基本問題 一 c語言規定總是從main 開始執行的 這個函式也叫 主函式 因此,你發來的...
c語言的簡單加密,C語言簡單加密問題
include include int main 那麼再讀入一個字元,賦給陣列裡的元素。也就是說,每兩個字元a i n 能讀入第二個字元。如果讀入奇數個字元,則無法結束程式。i 0 dowhile a i n 修改如下,執行ok include int main printf n include i...
C語言簡單問題
金色潛鳥 c c 語言結構 就是由 一個一個函式組成。例如 fun1 fun2 main fun3 程式執行 從main 的頭開始 到 main 的結束為止,main裡的語句可以呼叫函式並返回,其它函式也可呼叫其它函式。被調函式在後的,那麼前面要寫 函式原型宣告。例如,main 要調 max max...