- 51單片機C語言開發教程
- 劉理云
- 1205字
- 2019-01-04 20:13:41
2.8 數組
迄今為止,我們使用的都是屬于基本類型(整型、字符型、實型)的數據,C語言還提供了構造類型的數據,它們有:數組類型、結構體類型、共用體類型。構造類型數據是由基本類型數據按一定規則組成的,因此有的書稱它們為“導出類型”,本書中只介紹數組。數組是有序數據的集合,數組中的每個元素都屬于同一個數據類型,用一個統一的數組名和下標來唯一地確定數組中的元素。有關數組的概念和數學中介紹的是相同的,這里只介紹C語言中如何定義和使用數組。
(1)一維數組的定義
一維數組的定義方式為:
類型說明符 數組名[常量表達式];
例如:int a[10];
它表示數組名為a,此數組有10個元素。
說明:
①數組名命名規則和變量名相同,遵循標識符命名規則。
②數組名后是用中括號括起來的常量表達式,不能用小括號,下面用法不對:
③常量表達式表示元素的個數,即數組長度。例如a[10]中10表示a數組中有10個元素,下標從0開始,這10個元素是:a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。注意不能使用數組元素a[10]。
④常量表達式中可包括常量和符號常量,不能包含變量。也就是說,C不允許對數組的大小作動態定義,即數組的大小不依賴于程序運行過程中變量的值。例如,下面這樣定義數組是不行的:
(2)一維數組元素的引用
數組必須先定義,然后使用。C語言規定只能逐個引用數組元素而不能一次引用整個數組。
數組元素的表示形式為:
數組名[下標]
下標可以是整型常量或整型表達式。如:
運行結果為9 8 7 6 5 4 3 2 1 0
(3)一維數組的初始化
可以用賦值語句或輸入語句使數組中的元素得到初值,但占運行時間。可以使數組在程序運行之前初始化,即在編譯階段使之得到初值。對數組元素的初始化可以用以下方法實現:
①在定義數組時對數組元素賦以初值。例如:
將數組元素的初值依次放在一對大括號內。注意int的前面有一個關鍵字staic,它是“靜態存儲”的意思,C51語言規定只有靜態存儲(staic)數組和外部存儲(extern)數組才能初始化。
經過上面的定義和初始化之后,a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=5,a[6]=6,a[7]=7,a[8]=8,a[9]=9。
②可以只給一部分元素賦值。例如:
定義a數組有10個元素,但大括號內只提供5個初值,這表示只給前面5個元素賦初值,后5個元素值為0。
③如果想使一個數組中全部元素值為0,可以寫成
其實,對static數組不賦初值,系統會對所有數組元素自動賦以0值。即
④在對全部數組元素賦初值時,可以不指定數組長度。例如:
在第二種寫法中,大括號中有5個數,系統就會據此自動定義a數組的長度為5。但若被定義的數組長度與提供初值的個數不相同,則數組長度不能省略。例如,想定義數組長度為10,就不能省略數組長度的定義,而必須寫成
只初始化前5個元素,后5個元素為0。
【例2-21】根據圖2-15所示電路,寫一程序控制發光二極管先依次亮,然后依次滅。

圖2-15 電路
- GeoServer Cookbook
- Java游戲服務器架構實戰
- Flash CS6中文版應用教程(第三版)
- Python高效開發實戰:Django、Tornado、Flask、Twisted(第3版)
- 軟件架構:Python語言實現
- 深入淺出Serverless:技術原理與應用實踐
- Python數據可視化之matplotlib實踐
- C++面向對象程序設計
- HTML5程序設計基礎教程
- JavaScript語法簡明手冊
- 數據庫技術及應用教程上機指導與習題(第2版)
- Python深度學習入門:從零構建CNN和RNN
- Developing RESTful Web Services with Jersey 2.0
- Learning WebRTC
- 從Excel到Python:用Python輕松處理Excel數據