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' 的現有值


上一篇下一篇

猜你喜欢

热点阅读