首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言二維陣列完整指南:定義、記憶體佈局、初始化、引用與分解

     編輯:關於C語言
 

二維陣列定義

類型 陣列名[常數運算式1][常數運算式2];

例:int a[3][4]; 為 3 行 4 列,共 12 個元素:a[0][0] ~ a[2][3]。

記憶體佈局:按行儲存

C 採行優先:先存第 0 列所有行,再第 1 列... 每元素佔 sizeof(類型) 位元組。概念上為平面,物理上為線性連續。

元素引用

陣列名[下標1][下標2],下標可為整數常數、變數或運算式。說明時方括號給長度,引用時給位置,兩者意義不同。

範例 7-6:計算分科與總平均分

5 人 3 科成績,用 a[5][3] 儲存,v[3] 存各科平均,average 存總平均。雙重迴圈按科目累加再除以 5。

for(i=0;i<3;i++) {
    for(j=0;j<5;j++) { scanf("%d",&a[j][i]); s+=a[j][i]; }
    v[i]=s/5; s=0;
}
average=(v[0]+v[1]+v[2])/3;

二維陣列初始化

按行分段

int a[5][3] = { {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };

按行連續

int a[5][3] = { 80,75,92, 61,65,71, 59,63,70, 85,87,90, 76,77,85 };

結果相同。範例 7-7 同 7-6 但用初始化賦值。

初始化補充規則

  1. 部分賦值:未賦值者為 0。int a[3][3]={{1},{2},{3}}; → 每行首列賦值,其餘 0。
  2. 全賦值時第一維長度可省略:int a[][3]={1,2,3,4,5,6,7,8,9};
  3. 二維陣列可視為一維陣列嵌套。a[3][4] 可分解為三個一維陣列 a[0], a[1], a[2],各 4 元素。它們是陣列名,不可作下標變數用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved