首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C語言教學:深入掌握一維數組的表示、初始化與動態賦值

     編輯:C 語言基礎

一維數組元素的表示與訪問

在 C 語言中,數組是由一組相同類型的元素組成的集合。每個數組元素本質上就是一個變量,我們通過「數組名[下標]」的形式來訪問它。下標必須是整型常量或整型表達式(如 a[5]、a[i+j]、a[i++]),若為浮點數編譯器會自動截斷取整。值得注意的是,C 語言不支援一次引用整個數組,必須透過迴圈逐個處理元素,例如輸出 10 個整數:

for (i = 0; i < 10; i++) printf("%d", a[i]);

直接寫 printf("%d", a); 是錯誤的,因為 a 代表數組首地址而非元素值。

數組的初始化賦值

初始化是在編譯階段為數組元素指定初始值,能減少執行期開銷。語法為:

static 類型 數組名[常量表達式] = {值, 值, ...};

static 表示靜態存儲類別,只有靜態或外部存儲的數組才能初始化。初始化規則如下:

  • 可僅對部分元素賦值,剩餘元素自動補 0(如 static int a[10]={0,1,2,3,4};)。
  • 不可整體賦值,必須逐元素列出(不能寫 static int a[10]=1;)。
  • 未顯式初始化的靜態數組,所有元素預設為 0。
  • 若提供全部初值,第一維長度可省略(static int a[]={1,2,3,4,5};)。

動態賦值與實戰範例

動態賦值在程式執行期間透過 scanf 等函數逐個輸入元素值。下例輸入 10 個整數並找出最大值:

void main() {
    int i, max, a[10];
    printf("input 10 numbers:\n");
    for (i = 0; i < 10; i++) scanf("%d", &a[i]);
    max = a[0];
    for (i = 1; i < 10; i++)
        if (a[i] > max) max = a[i];
    printf("maxmum=%d\n", max);
}

另一個範例示範選擇排序法將 10 個數由大到小排序:

void main() {
    int i, j, p, q, s, a[10];
    printf("\n input 10 numbers:\n");
    for (i = 0; i < 10; i++) scanf("%d", &a[i]);
    for (i = 0; i < 10; i++) {
        p = i; q = a[i];
        for (j = i + 1; j < 10; j++)
            if (q < a[j]) { p = j; q = a[j]; }
        if (i != p) {
            s = a[i]; a[i] = a[p]; a[p] = s;
        }
        printf("%d", a[i]);
    }
}

程式先輸入資料,再以雙層迴圈比較交換,完成排序並輸出結果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved