女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)C語言數(shù)組的詳細(xì)實(shí)例程序應(yīng)用介紹

Wildesbeast ? 來源:未知 ? 2019-10-13 11:48 ? 次閱讀

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

(1)一維數(shù)組

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

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

#include

/*

-----------------------------------------------------

此程序用以說明數(shù)組的建立、數(shù)據(jù)操作

-----------------------------------------------------

*/

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

void main()

{

unsigned char i;

for(i=0;i《10;i++)

{

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

}

/*

---------------------------------------

array |9|8|7|6|5|4|3|2|1|0| [9]~[0]

---------------------------------------

*/

while(1);

}

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

上面的程序中的數(shù)組是靜態(tài)建立的,以下例程來用說明數(shù)組的動(dòng)態(tài)建立。

#include

#include

/*

-----------------------------------------------------

此程序用以說明數(shù)組的動(dòng)態(tài)建立

-----------------------------------------------------

*/

unsigned char *parray;

void main()

{

unsigned char i;

parray=(unsigned char *)malloc(10); //動(dòng)態(tài)創(chuàng)建一個(gè)數(shù)組

for(i=0;i《10;i++)

{

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

}

free(parray); //釋放數(shù)組

while(1);

}

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

#include

#include

/*

-----------------------------------------------------

此程序用以說明字符串

-----------------------------------------------------

*/

char s[]={‘y’,‘a(chǎn)’,‘h’,‘o’,‘o’,‘\0’};

//定義一個(gè)字符串,并對(duì)它進(jìn)行初始化,以‘\0’結(jié)束

void main()

{

char s_temp[10];

strcpy(s_temp,s);//strcpy位于string.h頭文件中,實(shí)現(xiàn)字符拷貝

//s為一個(gè)常量,不能s++

strcpy(s_temp,“yahoo”);//與上面的語句等效

while(1);

}

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

#include

#include

/*

-----------------------------------------------------

此程序用以說明字符串的靈活運(yùn)用

-----------------------------------------------------

*/

/*

-----------------------------------------------------

此函數(shù)從字符串s中提取第n個(gè)子串,子串間由‘,’分隔

返回指向該子串的指針

-----------------------------------------------------

*/

char *get_sub_string(char *s,unsigned char n)

{

int i;int d=0;int fore=0;

int len=strlen(s);

for(i=0;i

{

if(s[i]==‘,’)

{

s[i]=‘\0’;

d++;

if(d==n)

{

return s+fore;

}

else

{

fore=i+1;

}

}

}

return NULL;

}

void main()

{

unsigned char c;

char string[20];

c=“yahoo”[2]; //c=‘h’

/*正如前面所述,字符串是由字符串的首地址來表示的,

字符串“yahoo”其實(shí)就是它的首地址,那就可以這樣來

取其中的某個(gè)字符:“yahoo”[2]*/

strcpy(string,“123,234,345,456”);

strcpy(string,get_sub_string(string,2));

while(1);

}

(2)二維數(shù)組

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

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

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

定義了一個(gè)二維數(shù)組array,有6行4列,共24個(gè)元素。

兩個(gè)方括號(hào)中的常量表達(dá)1與常量表達(dá)式2規(guī)定了數(shù)組的行數(shù)與列數(shù),從而確定了數(shù)組中的元素個(gè)數(shù)。行下標(biāo)從0開始,最大為5,共6行;列下標(biāo)也從0開始,最大為3,共4列。數(shù)組中共有6X4=24個(gè)元素,具體如下表示:

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

#include

#include

/*

-----------------------------------------------------

此程序用以說明二維數(shù)組的使用方法

-----------------------------------------------------

*/

void main()

{

unsigned char arrays[3][3]={{1,2,3},{2,3,4},{3,4,5}};

//定義一個(gè)3行3列的二維數(shù)組,其它在內(nèi)存中還是以一維的方式存儲(chǔ)的

//用下面的方式就可以知道這一點(diǎn)

unsigned char test;

test=((unsigned char *)arrays)[6];//test=3;

//將二維數(shù)據(jù)的首地址強(qiáng)制轉(zhuǎn)為一維數(shù)組,按照一維數(shù)組的方式訪問它

while(1);

}

除了一維數(shù)組、二維數(shù)組,其實(shí)可以定義任何維的數(shù)組,多維數(shù)組用來表示由多個(gè)下標(biāo)才能決定的量。

例如:int arrays[3][3][3]

表示數(shù)組arrays為一個(gè)三維數(shù)組,對(duì)應(yīng)于三維存儲(chǔ)模型。

其實(shí)單片機(jī)內(nèi)的存儲(chǔ)器是一維的,即所有數(shù)據(jù)都是依次順序存儲(chǔ)的,所以無論幾維數(shù)組都由編譯程序抽象出數(shù)組到單片機(jī)存儲(chǔ)的實(shí)際的一維數(shù)組映射。

#include

/*

-----------------------------------------------------

此程序用以說明三維數(shù)組

-----------------------------------------------------

*/

void main()

{

unsigned char test;

unsigned char arrays[2][2][2]={{{1,2},{2,3}},{{3,4},{4,5}}};

test=arrays[1][1][0];//test=4

test=((unsigned char *)arrays)[7]; //test=5

while(1);

}

(3)結(jié)構(gòu)數(shù)組

多個(gè)結(jié)構(gòu)變量也可以構(gòu)成結(jié)構(gòu)數(shù)組,其定義方法與定義結(jié)構(gòu)變量完全相同。

如下例:

#include

/*

-----------------------------------------------------

此程序用以說明結(jié)構(gòu)數(shù)組

-----------------------------------------------------

*/

typedef struct

{

int a,b,c,d;

} Stru;

void main()

{

Stru stru[10]; //定義結(jié)構(gòu)數(shù)組

unsigned char i=0;

for(;i《10;i++)

{

stru[i].a=i;

stru[i].b=i;

stru[i].c=i;

stru[i].d=i;

}

while(1);

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6061

    文章

    44914

    瀏覽量

    646608
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

    140182
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    419

    瀏覽量

    26360
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    51單片機(jī)及其C語言程序開發(fā)實(shí)例

    51單片機(jī)及其C語言程序開發(fā)實(shí)例:很詳細(xì),很全面的電子書實(shí)例
    發(fā)表于 01-03 17:25 ?255次下載

    AVR單片機(jī)C語言實(shí)例程序

    AVR單片機(jī)C語言實(shí)例程序,有需要的下來看看
    發(fā)表于 07-12 15:29 ?44次下載

    使用PIC單片機(jī)進(jìn)行匯編語言的學(xué)習(xí)資料和實(shí)例程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用PIC單片機(jī)進(jìn)行匯編語言的學(xué)習(xí)資料和實(shí)例程序免費(fèi)下載。
    發(fā)表于 08-13 17:33 ?33次下載
    使用PIC<b class='flag-5'>單片機(jī)</b>進(jìn)行匯編<b class='flag-5'>語言</b>的學(xué)習(xí)資料和<b class='flag-5'>實(shí)例程序</b>免費(fèi)下載

    NEC單片機(jī)C編譯中SREG的應(yīng)用實(shí)例程序說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是NEC單片機(jī)C編譯中SREG的應(yīng)用實(shí)例程序說明。
    發(fā)表于 08-01 17:34 ?0次下載
    NEC<b class='flag-5'>單片機(jī)</b><b class='flag-5'>C</b>編譯中SREG的應(yīng)用<b class='flag-5'>實(shí)例程序</b>說明

    秦龍MSP430單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精解的實(shí)例程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是秦龍MSP430單片機(jī)C語言應(yīng)用程序設(shè)計(jì)
    發(fā)表于 09-01 08:00 ?36次下載
    秦龍MSP430<b class='flag-5'>單片機(jī)</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>應(yīng)用<b class='flag-5'>程序</b>設(shè)計(jì)<b class='flag-5'>實(shí)例</b>精解的<b class='flag-5'>實(shí)例程序</b>免費(fèi)下載

    使用單片機(jī)C語言實(shí)現(xiàn)消防車警報(bào)的實(shí)例程序和工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)C語言實(shí)現(xiàn)消防車警報(bào)的實(shí)例程序和工程文件免費(fèi)下載。
    發(fā)表于 02-02 10:48 ?17次下載

    使用單片機(jī)C語言實(shí)現(xiàn)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)原理的實(shí)例程序和工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)C語言實(shí)現(xiàn)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)原理的實(shí)例程序和工程文件免費(fèi)下載。
    發(fā)表于 02-02 10:48 ?10次下載

    使用單片機(jī)實(shí)現(xiàn)報(bào)警發(fā)聲的C語言實(shí)例程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)報(bào)警發(fā)聲的C語言實(shí)例程序免費(fèi)下載。
    發(fā)表于 03-02 11:34 ?10次下載

    使用單片機(jī)實(shí)現(xiàn)步進(jìn)電機(jī)轉(zhuǎn)速數(shù)碼管顯示的C語言實(shí)例程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)步進(jìn)電機(jī)轉(zhuǎn)速數(shù)碼管顯示的C語言實(shí)例程序免費(fèi)下載。
    發(fā)表于 03-02 11:34 ?11次下載

    使用單片機(jī)實(shí)現(xiàn)步進(jìn)電機(jī)按鍵控制的C語言實(shí)例程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)步進(jìn)電機(jī)按鍵控制的C語言實(shí)例程序免費(fèi)下載。
    發(fā)表于 03-02 11:33 ?17次下載

    實(shí)現(xiàn)PC機(jī)單片機(jī)雙向通信的C語言程序設(shè)計(jì)實(shí)例免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)PC機(jī)單片機(jī)雙向通信的C
    發(fā)表于 03-30 15:52 ?27次下載

    使用單片機(jī)實(shí)現(xiàn)ADC0832模數(shù)轉(zhuǎn)換與LCD顯示的C語言實(shí)例程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)ADC0832模數(shù)轉(zhuǎn)換與LCD顯示的C語言實(shí)例程序免費(fèi)下載。
    發(fā)表于 03-30 16:49 ?59次下載

    使用單片機(jī)實(shí)現(xiàn)單片機(jī)內(nèi)置EEPROM讀寫測(cè)試的C語言實(shí)例程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)單片機(jī)內(nèi)置EEPROM讀寫測(cè)試的C語言實(shí)例程序免費(fèi)下載
    發(fā)表于 03-30 16:48 ?18次下載

    使用單片機(jī)實(shí)現(xiàn)溫室監(jiān)控系統(tǒng)仿真設(shè)計(jì)的C語言實(shí)例程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)溫室監(jiān)控系統(tǒng)仿真設(shè)計(jì)的C語言實(shí)例程序免費(fèi)下載。
    發(fā)表于 03-30 16:48 ?10次下載

    使用單片機(jī)和DAC0832生成鋸齒波的C語言實(shí)例程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)和DAC0832生成鋸齒波的C語言實(shí)例程序免費(fèi)下載。
    發(fā)表于 03-30 16:48 ?26次下載