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

C語言陣列基礎:一維陣列宣告、初始化與記憶體佈局詳解

     編輯:關於C語言

什麼是陣列?

在程式設計中,為了方便處理大量相同類型的資料,C語言提供了陣列這種構造資料類型。陣列將具有相同型別的若干變數,按有序形式組織起來,這些按序排列的同類資料元素集合稱為陣列。一個陣列可分解為多個陣列元素,元素型別可以是基本型別(如 int、float、char)或構造型別(如結構體、指標),因此衍生出數值陣列、字元陣列、指標陣列、結構體陣列等類別。本章重點介紹數值陣列與字元陣列。

陣列型別宣告語法

在 C 語言中使用陣列前,必須先進行型別宣告。一般形式如下:

型別指定符 陣列名稱 [常量表達式];
  • 型別指定符:任一基本或構造資料型別(int、float、char 等)。
  • 陣列名稱:使用者自訂的識別碼,需符合命名規則。
  • 常量表達式:方括號內的整數常量,表示元素個數(陣列長度)。

宣告範例

int a[10];           // 整數陣列 a,含 10 個元素
float b[10], c[20];  // 實數陣列 b(10) 與 c(20)
char ch[20];         // 字元陣列 ch,含 20 個元素

陣列宣告的關鍵注意事項

  1. 元素型別統一:同一陣列所有元素型別相同。
  2. 命名規範:陣列名遵循標識符命名規則。
  3. 名稱唯一:陣列名不可與同作用域內其他變數重名。
    int a; float a[10]; // 錯誤:重複定義
  4. 下標從 0 開始:a[5] 表示 5 個元素,下標為 a[0]~a[4]。
  5. 長度必須為常量表達式:不可使用變數指定長度,但可用巨集或常量表達式。
    #define FD 5 int a[3+2], b[7+FD]; // 合法 int n=5; int a[n]; // 錯誤(C89 標準)
  6. 混合宣告:同一型別宣告中可同時定義多個陣列與變數。
    int a, b, c, k1[10], k2[20];

陣列在記憶體中的佈局

陣列元素在記憶體中連續儲存,元素間無間隙。以 int a[5] 為例,假設起始位址為 2000,每個 int 佔 2 位元組:

  • a[0] 位址 2000
  • a[1] 位址 2002
  • a[2] 位址 2004
  • a[3] 位址 2006
  • a[4] 位址 2008

這種連續特性使得指標運算(如 p+1)能高效遍歷陣列,也是陣列高效能的根本原因。

小結

掌握陣列宣告語法、下標規則、長度限制與記憶體佈局,是後續學習多維陣列、字串處理、指標與陣列關係的基石。實務上應善用 #define 定義陣列大小,提升程式可維護性。

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