close

說明:

  陣列是一種結構性的資料儲存空間,其同一陣列裡的資料性質呈一致性,元素與元素之間的記憶位置是相鄰的,通常我們利用一個變數來代表整體的資料。舉例而言,我們可以把陣列想成一群鳥窩,而陣列裡的變數個數代表鳥窩的數目,例如:麻雀[20],我們可以想成麻雀的窩總共有二十間,每一間住著一間麻雀,假如我們想要知道第三間麻雀的名字,只要把麻雀[2]的值取出,便可知道住在第三間麻雀的姓名。C語言的陣列索引一定是從0的開始的。

格式:

根據陣列的結構而言,可以把陣列分為(1)一維陣列、(2)二維陣列、(3)多維陣列。

而其表示方法如下:

資料型態 陣列名稱[陣列大小];

資料型態 陣列名稱[陣列大小][陣列大小];

宣告陣列變數時,也可一併給與初始值:

  int x[5] = {1,2,3,4,5};
  int y[] = {1,2,3};
  int z[3][4] = {{1,2,3,4},{5,6,7,8},{0,1,2,3}};
  int a[];
  

上面例子裡的y陣列大小,是由後面{}裡元素的個數決定。int a[]並沒有分配儲存陣列內容的空間,因此可視為指標宣告。

引用方式:

陣列名稱[索引值]

陣列名稱[索引值][索引值]

圖示:

範例:(輸入3個實數,並求其平均值)

#include<stdio.h>
void main() {
    float num[3], sum=0;
    int i;
    for (i = 0; i < 3; i++) {
        printf("Input a number to num[%d] : ", i);
        scanf("%f", &num[i]);
        sum = sum + num[i];
    }
    printf("The average is %f\n", sum / i);
}

陣列的空間分配方式

無論是幾維的陣列,C語言都以分配一塊連續的記憶體空間來處理。

int x[10];

分配10*sizeof(int)個bytes

int x[5][10];

分配5*10*sizeof(int)個bytes

int x[4][5][6];

分配4*5*6*sizeof(int)個bytes

void fun(int x[]) {
}
arrow
arrow
    全站熱搜

    歐巴珊手繪設計 發表在 痞客邦 留言(0) 人氣()