iT邦幫忙

0

【從零開始的 C 語言筆記】第十六篇-二維Array

  • 分享至 

  • xImage
  •  

不怎麼重要的前言

上一篇介紹了跟處理字串有關的String函式庫,也使用了很多例子來介紹函式的使用,不曉得這樣有沒有清楚一些?

趁不久前介紹的第十三篇Array,今天我們來介紹二維array!


一維array、二維array?

大家對於一維、二維的概念大概來自於數學,一維是線、二維是平面而三維空間,但陣列的一、二維可能會有點像,但跟大家想的不太一樣,還記得在第十三篇介紹的陣列嗎,那種類型的陣列就是一維的單一排列,而陣列的二維、多維則是有點像巢狀的結構。

下面我們來舉個二維陣列的例子:

int arr[3][2] = {{1,2},{3,4},{5,6}};

可以看到這樣子陣列中又包著陣列的形式會稱為多維,而多維就是這樣延伸下去。


正式使用二維陣列

  1. 介紹
    二維陣列基本上如同一維陣列的使用方式。

(1) 宣告:不可以只有賦值。
a. 只宣告陣列大小

int arr[2][3];

b. 宣告陣列大小同時賦值

int arr[3][2] = {{1,2},{3,4},{5,6}};

(2) index:二維陣列的index仍是由0開始,而「陣列名稱[index1][index2]」由左而右,對應陣列結構則是由外而內,各自的index則是分開計算像是下圖。
https://ithelp.ithome.com.tw/upload/images/20211028/201425650nytV8MwbW.png

可以參考以下程式碼。

#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]);
 }

https://ithelp.ithome.com.tw/upload/images/20211028/20142565nbig5m9aY8.png

  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]);
 }

https://ithelp.ithome.com.tw/upload/images/20211028/20142565DBMZlnCM7g.png


看到這裡就大概介紹完多維陣列的概念啦,可以多多嘗試方便熟悉操作!

下一章我們來介紹if條件式!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言