<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  C語言開發  (http://www.hufushizhe.com/bbs/list.asp?boardid=62)
    ----  單片機的C語言中數組的用法  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=62&id=2395)

    --  作者:wangxinxin
    --  發布時間:2010-12-10 10:12:35
    --  單片機的C語言中數組的用法

    數組是由具有相同類型的數據元素組成的有序集合。數組是由數組名來表示的,數組中的數據由特定的下標來唯一確定。引入數組的目的,是使用一塊連續的內存空間存儲多個類型相同的數據,以解決一批相關數據的存儲問題。數組與普通變量一樣,也必須先定義,后使用。數組在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=#]{


    主站蜘蛛池模板: 99热这里只有精品6免费| 亚洲男人电影天堂| 黄色三级电影网| 女仆的胸好大揉出奶水| 乱中年女人伦av一区二区| 深夜A级毛片视频免费| 国产人妖系列在线精品| 97午夜理伦片在线影院| 妇女被猛烈进入在线播放| 久久综合综合久久综合| 欧美性猛交xxxx乱大交丰满| 四虎影视久久久免费观看| 高清不卡免费一区二区三区| 国模无码一区二区三区不卡| 中文字幕在线国产| 日本免费人成黄页在线观看视频| 亚洲欧美另类国产| 男人的天堂影院| 国产一级高清免费观看| 黄录像欧美片在线观看| 国内精品视频一区二区八戒| 中国一级片在线观看| 日本永久免费a∨在线视频| 亚洲欧美日韩精品久久亚洲区| 男人的j桶女人的j视频| 国产不卡视频一区二区三区| 黄网站色视频免费观看45分钟 | 又湿又紧又大又爽a视频国产| 青草国产精品久久久久久| 国产精品无码专区在线观看| 一个人hd高清在线观看免费| 精品福利视频第一| 日韩精品专区在线影院重磅| 免费看美女吃男生私人部位| 翁止熄痒禁伦短文合集免费视频| 国产福利在线观看极品美女| av免费不卡国产观看| 天天综合网天天做天天受| 中文字幕曰产乱码| 无限看片在线版免费视频大全| 亚洲av日韩综合一区久热|