不怎么重要的前言
上一篇介绍了跟处理字串有关的String函式库,也使用了很多例子来介绍函式的使用,不晓得这样有没有清楚一些?
趁不久前介绍的第十三篇Array,今天我们来介绍二维array!
一维array、二维array?
大家对于一维、二维的概念大概来自于数学,一维是线、二维是平面而三维空间,但阵列的一、二维可能会有点像,但跟大家想的不太一样,还记得在第十三篇介绍的阵列吗,那种类型的阵列就是一维的单一排列,而阵列的二维、多维则是有点像巢状的结构。
下面我们来举个二维阵列的例子:
int arr[3][2] = {{1,2},{3,4},{5,6}};
可以看到这样子阵列中又包着阵列的形式会称为多维,而多维就是这样延伸下去。
正式使用二维阵列
介绍二维阵列基本上如同一维阵列的使用方式。
(1) 宣告:不可以只有赋值。
a. 只宣告阵列大小
int arr[2][3];
b. 宣告阵列大小同时赋值
int arr[3][2] = {{1,2},{3,4},{5,6}};
(2) index:二维阵列的index仍是由0开始,而「阵列名称[index1][index2]」由左而右,对应阵列结构则是由外而内,各自的index则是分开计算像是下图。
可以参考以下程式码。
#include <stdio.h>#include <string.h>int main(void) { int arr[3][2] = {{1,2},{3,4},{5,6}}; printf("arr[0][0]: %d\n",arr[0][0]); printf("arr[0][1]: %d\n",arr[0][1]); printf("arr[1][0]: %d\n",arr[1][0]); printf("arr[1][1]: %d\n",arr[1][1]); printf("arr[2][0]: %d\n",arr[2][0]); printf("arr[2][1]: %d\n",arr[2][1]); }
#include <stdio.h>#include <string.h>int main(void) { int arr[3][2] = {{1,2},{3,4},{5,6}}; printf("arr[0][0]: %d\n",arr[0][0]); printf("arr[0][1]: %d\n",arr[0][1]); printf("arr[1][0]: %d\n",arr[1][0]); printf("arr[1][1]: %d\n",arr[1][1]); printf("arr[2][0]: %d\n",arr[2][0]); printf("arr[2][1]: %d\n",arr[2][1]); printf("---\n"); arr[1][0] = 0; printf("arr[0][0]: %d\n",arr[0][0]); printf("arr[0][1]: %d\n",arr[0][1]); printf("arr[1][0]: %d\n",arr[1][0]); printf("arr[1][1]: %d\n",arr[1][1]); printf("arr[2][0]: %d\n",arr[2][0]); printf("arr[2][1]: %d\n",arr[2][1]); }