久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久

Rss & SiteMap

曙海教育集團論壇 http://www.bjzhda.cn

曙海教育集團論壇
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標題:單片機的C語言中數組的用法

1樓
wangxinxin 發表于:2010-12-10 10:12:35

數組是由具有相同類型的數據元素組成的有序集合。數組是由數組名來表示的,數組中的數據由特定的下標來唯一確定。引入數組的目的,是使用一塊連續的內存空間存儲多個類型相同的數據,以解決一批相關數據的存儲問題。數組與普通變量一樣,也必須先定義,后使用。數組在C51語言的地位舉足輕重,因此深入地了解數組是很有必要的。下面就對數組進行詳細的介紹。

1)一維數組

一維數組是最簡單的數組,用來存放類型相同的數據。數據的存放是線性連續的。

用以下例程說明數組的建立、數據操作:

[size=#]#include



[size=#]unsigned char array[10];//定義一個有10個單元的數組


[size=#]void main()

[size=#]{

[size=#]unsigned char i;

[size=#]for(i=0;i<10;i++)

[size=#]{

[size=#]array=i; //用下標調用數組中的元素

[size=#]}


[size=#]while(1);

[size=#]}

數組名是用來表示數組的標識,其實它是數組的首地址,即一個指針。不過它所表示的地址是固定的,不能改動。如前幾章所述的相關內容,array[2]*(array+2)是等效的,不過不能用array++,因為array是常量。

上面[size=#]的程序中的數組是靜態建立的,以下例程來用說明數組的動態建立。

[size=#]#include

[size=#]#include




[size=#]unsigned char *parray;


[size=#]void main()

[size=#]{

[size=#]unsigned char i;

[size=#]parray=(unsigned char *)malloc(10); //動態創建一個數組

[size=#]for(i=0;i<10;i++)

[size=#]{

[size=#]parray=i; //向數組中賦值

[size=#]}

[size=#]free(parray); //釋放數組

[size=#]while(1);

[size=#]}

[size=#]字符串是數組的一個重要特例。它的每個單元的數據均為字符類型(char),最后一個單元為'\0'0x00[size=#]),用來表示字符串的結束。C51函數庫中提供了專門對字符串進行處理的函數,用以下例程說明:

[size=#]#include

[size=#]#include




[size=#]char s[]={'y','a','h','o','o','\0'};

[size=#]//定義一個字符串,并對它進行初始化,以'\0'結束


[size=#]void main()

[size=#]{

[size=#]char s_temp[10];

[size=#]strcpy(s_temp,s);//strcpy位于string.h頭文件中,實現字符拷貝

[size=#]//s為一個常量,不能s++

[size=#]strcpy(s_temp,"yahoo");//與上面的語句等效

[size=#]while(1);

[size=#]}

[size=#]以下列出幾種字符串的靈活用法,希望能夠幫助讀者深入了解字符串:

[size=#]#include

[size=#]#include





[size=#]char *get_sub_string(char *s,unsigned char n)

[size=#]{

[size=#]int i;int d=0;int fore=0;

[size=#]int len=strlen(s);

[size=#]for(i=0;i< FONT>

[size=#]{

[size=#]if(s==',')

[size=#]{

[size=#]s='\0';

[size=#]d++;

[size=#]if(d==n)

[size=#]{

[size=#]return s+fore;

[size=#]}

[size=#]else

[size=#]{

[size=#]fore=i+1;

[size=#]}

[size=#]}

[size=#]}

[size=#]return NULL;

[size=#]}


[size=#]void main()

[size=#]{

[size=#]unsigned char c;

[size=#]char string[20];

[size=#]c="yahoo"[2]; //c='h'


[size=#]strcpy(string,"123,234,345,456");

[size=#]strcpy(string,get_sub_string(string,2));

[size=#]while(1);

[size=#]}

[size=#](2)二維數組

[size=#]可由兩個下標確定元素的數組就稱為二維數組。其定義的一般形式為:

類型說明符 數組名[常量表達式1][常量表達式2]

例如:int array[6][4];

定義了一個二維數組array,有64列,共24個元素。

兩個方括號中的常量表達1與常量表達式2規定了數組的行數與列數,從而確定了數組中的元素個數。行下標從0開始,最大為5,6;列下標也從0開始,最大為3,共4列。數組中共有6X4=24個元素,具體如下表示:

array[0][0]
array[0][1]
array[0][2]
array[0][3]
array[1][0]
array[1][1]
array[1][2]
array[1][3]
array[2][0]
array[2][1]
array[2][2]
array[2][3]
array[3][0]
array[3][1]
array[3][2]
array[3][3]
array[4][0]
array[4][1]
array[4][2]
array[4][3]
array[5][0]
array[5][1]
array[5][2]
array[5][3]

實際使用時,可以把上述二維數組看作一個64列的矩陣,是一個平面的二維結構。那么編譯程序是如何用一[size=#]維的存儲空間給這樣一個二維結構分配連續的存儲單元的呢[size=#]C51采用按行存放的方法,即在內存中先存放第0行元素,再存放第1行、第2行、......元素,每行中先存放第0列,接著存放第1列、第2列、......的元素。

[size=#]#include

[siz=#]#include




[size=#]void main()

[size=#]{

共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團
Powered By 曙海教育集團 Version 2.2
Processed in .04688 s, 2 queries.
主站蜘蛛池模板: 亚洲国产精品日韩在线观看 | 爆操巨乳美女 | 久久福利资源站免费观看i 久久高清精品 | 国产亚洲精| 亚洲一级特黄特黄的大片 | 99久久国产免费福利 | 91视频最新网站 | 亚洲国产综合久久精品 | 免费午夜不卡毛片 | 国产成年人网站 | www亚洲成人| 色偷偷亚洲女人天堂观看欧 | 香港三级88久久经典 | 国产精品午夜性视频网站 | 深夜福利国产福利视频 | 欧美一区二区三区精品 | 亚洲好逼 | 最爽的乱淫片免费 | 日本欧美一级二级三级不卡 | 碰超在线观看 | 日本加勒比一区 | 很黄的网站在线观看 | 韩国福利影视一区二区三区 | 国产91精品一区二区视色 | 九一国产| 一区二区三区国产美女在线播放 | 王朝影院一区二区三区入口 | 国产成人在线播放视频 | 精品久久久久久久高清 | 国产精品1页 | 九九这里只精品视在线99 | www.亚洲成人 | 天堂8资源8在线 | 亚洲成色在线 | 在线观看 一区 | 黄色影院在线 | 亚洲高清国产品国语在线观看 | 国产午夜在线观看视频播放 | 中文字幕咪咪网 | 青青草国产免费久久久91 | 国内真实愉拍系列情侣 |