數組是由具有相同類型的數據元素組成的有序集合。數組是由數組名來表示的,數組中的數據由特定的下標來唯一確定。引入數組的目的,是使用一塊連續(xù)的內存空間存儲多個類型相同的數據,以解決一批相關數據的存儲問題。數組與普通變量一樣,也必須先定義,后使用。數組在C51語言的地位舉足輕重,因此深入地了解數組是很有必要的。下面就對數組進行詳細的介紹。
(1)一維數組
一維數組是最簡單的數組,用來存放類型相同的數據。數據的存放是線性連續(xù)的。
用以下例程說明數組的建立、數據操作:
#include
/*
-----------------------------------------------------
此程序用以說明數組的建立、數據操作
-----------------------------------------------------
*/
unsigned char array[10];//定義一個有10個單元的數組
void main()
{
unsigned char i;
for(i=0;i<10;i++)
{
array[i]=i; //用下標調用數組中的元素
}
/*
---------------------------------------
array |9|8|7|6|5|4|3|2|1|0| [9]~[0]
---------------------------------------
*/
while(1);
}
數組名是用來表示數組的標識,其實它是數組的首地址,即一個指針。不過它所表示的地址是固定的,不能改動。如前幾章所述的相關內容,array[2]與*(array+2)是等效的,不過不能用array++,因為array是常量。
上面的程序中的數組是靜態(tài)建立的,以下例程來用說明數組的動態(tài)建立。
#include
#include
/*
-----------------------------------------------------
此程序用以說明數組的動態(tài)建立
-----------------------------------------------------
*/
unsigned char *parray;
void main()
{
unsigned char i;
parray=(unsigned char *)malloc(10); //動態(tài)創(chuàng)建一個數組
for(i=0;i<10;i++)
{
parray[i]=i; //向數組中賦值
}
free(parray); //釋放數組
while(1);
}
字符串是數組的一個重要特例。它的每個單元的數據均為字符類型(char),最后一個單元為'