static int a[5][3] = {
{80, 75, 92},
{61, 65, 71},
{59, 63, 70},
{85, 87, 90},
{76, 77, 85}
};
static int a[5][3] = {
80, 75, 92,
61, 65, 71,
59, 63, 70,
85, 87, 90,
76, 77, 85
};
結果完全相同,按行主序填充。
static int a[3][3] = {{1},{2},{3}}; → 每行首列賦值,其餘 0static int a[3][3] = {{0,1},{0,0,2},{3}}; → 按序填充,其餘 0
static int a[][3] = {1,2,3,4,5,6,7,8,9}; // 編譯器推導為 3 行
a[3][4] 可視為 3 個一維數組:a[0], a[1], a[2],各長 4。名稱即數組名(地址),不可作下標變量用。
char c[10]; // 一維
char c[5][10]; // 二維
// 亦可用 int 但佔 2 字節/元素
static char c[10] = {'c',' ','p','r','o','g','r','a','m'};
static char c[] = "C program"; // 推薦,自動長度含 \0
main() {
int i, j;
char a[][5] = {{'B','A','S','I','C'}, {'d','B','A','S','E'}};
for (i=0; i<=1; i++) {
for (j=0; j<=4; j++) printf("%c", a[i][j]);
printf("\n");
}
}
strlen, strcpy, printf("%s"))依賴 \0
void main() {
int i, j, s=0, l, v[3];
static int a[5][3] = {{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};
for (i=0; i<3; i++) {
for (j=0; j<5; j++) s += a[j][i];
v[i] = s/5; s=0;
}
l = (v[0]+v[1]+v[2])/3;
printf("math:%d\nc languag:%d\ndbase:%d\n", v[0],v[1],v[2]);
printf("total:%d\n", l);
}
二維數組是矩陣、表格、多維數據的基礎表示,掌握其初始化、佈局、分解視角對數據處理編程至關重要。