曙海教育集團(tuán)論壇開發(fā)語言培訓(xùn)專區(qū)C語言開發(fā) → 單片機(jī)的C語言中數(shù)組的用法


  共有9288人關(guān)注過本帖樹形打印

主題:單片機(jī)的C語言中數(shù)組的用法

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發(fā)短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
單片機(jī)的C語言中數(shù)組的用法  發(fā)帖心情 Post By:2010-12-10 10:12:35

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

1)一維數(shù)組

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

用以下例程說明數(shù)組的建立、數(shù)據(jù)操作:

[size=#]#include



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


[size=#]void main()

[size=#]{

[size=#]unsigned char i;

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

[size=#]{

[size=#]array=i; //用下標(biāo)調(diào)用數(shù)組中的元素

[size=#]}


[size=#]while(1);

[size=#]}

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

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

[size=#]#include

[size=#]#include




[size=#]unsigned char *parray;


[size=#]void main()

[size=#]{

[size=#]unsigned char i;

[size=#]parray=(unsigned char *)malloc(10); //動態(tài)創(chuàng)建一個數(shù)組

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

[size=#]{

[size=#]parray=i; //向數(shù)組中賦值

[size=#]}

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

[size=#]while(1);

[size=#]}

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

[size=#]#include

[size=#]#include




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

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


[size=#]void main()

[size=#]{

[size=#]char s_temp[10];

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

[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)二維數(shù)組

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

類型說明符 數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]

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

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

兩個方括號中的常量表達(dá)1與常量表達(dá)式2規(guī)定了數(shù)組的行數(shù)與列數(shù),從而確定了數(shù)組中的元素個數(shù)。行下標(biāo)從0開始,最大為5,6;列下標(biāo)也從0開始,最大為3,共4列。數(shù)組中共有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]

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

[size=#]#include

[siz=#]#include




[size=#]void main()

[size=#]{


支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

單片機(jī)的C語言中數(shù)組的用法








簽名
主站蜘蛛池模板: aaa毛片免费观看| 亚洲欧美一区二区久久| 99国产精品国产精品九九| 欧美黑人XXXX高潮猛交| 国产综合无码一区二区色蜜蜜| 亚洲最新在线视频| 亚洲成人高清在线| 国产精彩视频在线| 扒开女人内裤边吃奶边摸| 经典国产乱子伦精品视频| 中国美团外卖男男china| 国产一区日韩二区欧美三区| 日韩在线视频一区| 调教扩张尿孔折磨失禁| 东北老妇露脸xxxxx| 动漫美女被到爽了流漫画| 好硬好湿好爽再深一点h视频| 男女下面一进一出无遮挡gif| 91大神精品网站在线观看| 色哟哟精品视频在线观看| 好妈妈5高清中字在线观看| 亚洲日本久久一区二区va| 免费日产乱码卡一卡| www成人在线观看| 欧美两性人xxxx高清免费| 国产三级在线观看免费| swag台湾在线| 最近中文字幕无| 六月丁香婷婷天天在线| 永久在线观看www免费视频| 无码无套少妇毛多69XXX| 依恋影视在线观看韩国| 欧美精品videossex欧美性| 性短视频在线观看免费不卡流畅| 亚洲第一性网站| 调教扩张尿孔折磨失禁| 在线观看视频国产| 久久人妻少妇嫩草AV蜜桃| 爽新片xxxxxxx| 国产交换俱乐部在线看| 99久久精品免费视频|