上一篇介紹了跟處理字串有關的String函式庫,也使用了很多例子來介紹函式的使用,不曉得這樣有沒有清楚一些?
趁不久前介紹的第十三篇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]);
}