標題: [課程消息] 二維陣列的宣告與使用
無頭像
s6351301

註冊 2013-3-2
用戶註冊天數 4044
狀態 離線
發表於 2017-4-22 01:09 
219.85.118.15
分享  私人訊息  頂部

二維陣列的宣告與使用

◎ 概念:如果要大量儲存同一種型態、而且彼此又有密切關係的「表格式」資料,例如數學中的矩陣,這時候就應將其宣告並設定為「二維陣列」。◎ 語法範例:(1)  int  a[50][3];        // 宣告整數二維陣列a,其內容可以看成是一個棋盤表格,共有50列(橫排),每列3個元素;                            例如要儲存50位同學的三科成績,就可以這樣宣告。其中第1位同學的第1科成績是                            a[0][0],第5位同學的第3科成績是a[4][2],餘類推。(※記得陣列的起始元素要從0開始)(2)  int  a[3][4] = {{2, 5, 7, 1}, {9, 4, 3, 15}, {6, 10, 8, 5}};      // 在宣告二維陣列時,可以同時設定初值(3)  int  a[3][4] = {0};  // 這是特別的初值設定法,會把二維陣列中每個元素都設為0(4)  char a[3][5] = {{'B', 'o', 'o', 'k', '\0'}, {'D', 'o', 'g', '\0', '\0'}, {'F', 'i', 's', 'h', '\0'}};  // 這是字元型態的二維陣列宣告與                                                                                                               初值設定,請注意字元 '\0'(5)  char a[3][5] = {"Book", "Dog", "Fish"};    // 這個陣列宣告方式基本上與上例(4)相同,其概念是用「字串」去包                                                      含「字元」,寫法要簡潔的多。但使用時要記得每個字串後面都有                                                      一個隱藏的結束字元 '\0'◎ 二維字元陣列與字串陣列的應用方法:一般在字串資料的應用上,常常會使用到字串陣列,例如要將星期日至星期六的英文單字建立成陣列,則我們常會使用下列的宣告方式:char  week[7][10] = {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY",                              "SATURDAY"};這種宣告就是所謂的字串陣列,而結構上是屬於二維字元陣列,其實際的資料內容可以用下面表格來表示:
 0123456789
0SUNDAY\0???
1MONDAY\0???
2TUESDAY\0??
3WEDNESDAY\0
4THURSDAY\0?
5FRIDAY\0???
6SATURDAY\0?



當我們作了這樣的宣告之後,後續的應用就有一些值得注意的地方:(1) week[x][y]這樣的寫法代表「字元」。例如 putchar(week[0][1])會印出字元 'U',putchar(week[2][3])會印出     字元 'S', week[3][0] = 'P' 會把該位置的內容從 'W' 改成 'P'。(2) week[x]這樣的寫法代表「字串」。例如 puts(week[0])會印出字串"SUNDAY",puts(week[1])會印出字串     "MONDAY"。其實講的更專業一點,week[x]所表示的是week[x][0]這個字元的記憶體位址,這在以後     講到『指標』這個單元時,還會再詳細說明。
http://rs2.ocu.edu.tw/~jengchi/2Darray_usage.htm