Chapter 10.1 Array
2019-01-13 本文已影响0人
Vincent_Wu_CS
/* 文章內容皆假定讀者有少許C語言基礎 */
Array
Array 是由一群具有相同型態(int,float,char 等等)的資料所成的集合
Array的宣告
int main(void){
float farray[10] Array名稱 'farray', 內含10個相同類型 "float" 的數據
char carray[20] Array名稱 'carray', 內含10個相同類型 "char" 的數據
int iarray[30] Array名稱 'iarray', 內含10個相同類型 "int" 的數據
}
Note: 索引 Array 的第一個元素 , ArrayName[0] , 而非 ArrayName[1]
//ArrayName為自定義的變數名稱
因為 Array 的第一個 index 是從 0 開始, 而非 1
10.1.1 初始化 Array
利用 curly brackets 花括號 '{}' ,對數組初始化, data之間使用逗號 ',' 分隔
int month[12] = {1,2,3,4,5,6,7,8,9,10,11,12}
寫一個小程式, 印出每個月的天數
#include <stdio.h>
#define Months 12
int main(void){
int days[Months] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int index;
for (index = 0; index < Months; ++index){
printf ("Month %2d has %2d days.\n", index+1, days[index]);
return 0;
}
}
程式會印出
Month 1 has 31 days.
Month 2 has 28 days.
Month 3 has 31 days.
以此類推
然而, 這個程式有小缺陷, 每四年會出錯(閏年)
程式在第二行,使用了預處理命令 #define, 作者推薦這種寫法
假如採用一年13個月的記法, 只需修改這行code即可 #define Months 13
不用在程式中尋找曾經使用過Array大小的地方, 逐一修改
Note:若要創建'Read-Only Array' 只需要在 宣告Array之前,加上const
const int days[Months]
Note:在使用Array之前, 沒有對Array作初始化, 即對Array作print
則會印出Array對應到 '記憶體Memory' 的現有值