今天我們把數(shù)組復(fù)習(xí)一下,數(shù)組是怎么用的,怎么對它進(jìn)行定義,怎么對它進(jìn)行賦值,然后把字符型數(shù)組大概說一下。
1維數(shù)組,1維數(shù)組就是1串?dāng)?shù),怎么定義這1串?dāng)?shù)呢?數(shù)組雖然是1組數(shù),但是我們可以對它單獨(dú)使用,它就是1組有順序的數(shù)。
把1組有順序的數(shù)給它存到1個(gè)連續(xù)的存儲(chǔ)空間中,這就是數(shù)組在單片機(jī)的應(yīng)用,某公司1共有50個(gè)人,我們50個(gè)人的編號就可以存到1個(gè)數(shù)組里,這個(gè)數(shù)組的長度就是50,里面存50個(gè)數(shù),在定義了1個(gè)存儲(chǔ)長度是50個(gè)數(shù)的數(shù)組,單片機(jī)就會(huì)自動(dòng)給我們分配1個(gè)連續(xù)的存儲(chǔ)空間,這50個(gè)數(shù)的數(shù)組在單片機(jī)中,存儲(chǔ)的方式是連續(xù)存儲(chǔ)的地址是1個(gè)挨著1個(gè),沒有任何間隔定義,這個(gè)能存50個(gè)數(shù)的數(shù)組,它的存儲(chǔ)類型是1個(gè)整形。
如果我想單獨(dú)把5號這個(gè)編號拿出來使用的話,那我直接就可以針對這個(gè)存儲(chǔ)地址對它進(jìn)行賦值。
比如說我們編號為5號同事名字是小李,但她突然離職,但是又來了1個(gè)新同事,又來了1個(gè)同事叫小王,這個(gè)小王沒有編號,但是小李的編號是5號,可是它又離職了,那我就可以讓小王變成5號,就要把5號這個(gè)編號對應(yīng)到小王的身上。
就是我定義數(shù)組的時(shí)候,它給我開辟了1串連續(xù)的存儲(chǔ)空間,這個(gè)存儲(chǔ)空間里面要存什么是我決定的,我想讓它存什么存什么,這就是我們數(shù)組的賦值,可以給這個(gè)數(shù)組里面任何1個(gè)數(shù)進(jìn)行單獨(dú)賦值,1維數(shù)組,2維數(shù)組都是這樣的,不要把它想成1個(gè)數(shù)組,1串?dāng)?shù)這么復(fù)雜,只要把它想成就是1個(gè)1個(gè)的數(shù),你可以把它當(dāng)1個(gè)數(shù)用,只是在表達(dá)1個(gè)數(shù)的時(shí)候,比方說表達(dá)1就是1,表達(dá)2就是2,但是這個(gè)數(shù)組你想表達(dá)1的時(shí)候,你就是A1,向你表達(dá)2的時(shí)候就是A2,它只是名字不1樣,表達(dá)方式不1樣,其實(shí)用起來還是跟我們所定義的那個(gè)整形變量是1樣用的。
我們再看1下2維數(shù)組的賦值。
給1個(gè)3行4列的整型數(shù)組賦值,這個(gè)賦值后的結(jié)果是什么樣子,比方說定義1個(gè)3行4列的整型數(shù)組a,我第1行只給它賦了1個(gè)數(shù)1,第2行給它賦了1個(gè)數(shù)5,第3行給它賦了1個(gè)數(shù)5,這個(gè)數(shù)組最后是什么樣子的,數(shù)組的第1行只有1個(gè)數(shù),就是1,它是3行4列,所以說它的第1行有4列,第1行是4個(gè)數(shù),但是它只給賦了1個(gè)數(shù)1,那就代表第1行的第1個(gè)數(shù)是1,其它3個(gè)數(shù)都是0,那它的第1行肯定就是1000,那第2行它就賦了1個(gè)5,那它的結(jié)果肯定就是第1個(gè)是5,然后后面的3個(gè)都是0,那第3行附了1個(gè)9,同樣第1個(gè)數(shù)是9,后面3個(gè)數(shù)都是0,我們現(xiàn)在先來看1下這個(gè)小程序,這個(gè)小程序它開始定義了1個(gè)十行十列的數(shù)組,這十行十列的數(shù)組是1個(gè)浮點(diǎn)類型的數(shù)組,而且這個(gè)浮點(diǎn)型的數(shù)組是存在我們的片外存儲(chǔ)器中的,因?yàn)樗昧?個(gè)X data,它又定義了1個(gè)浮點(diǎn)型的1個(gè)變量X,這個(gè)X也是存儲(chǔ)在外部存儲(chǔ)器中的,它讓這個(gè)數(shù)組的第5行的第0個(gè)數(shù),把這個(gè)數(shù)給它賦值給。X這個(gè)變量就相當(dāng)于2維數(shù)組中存的所有的數(shù),都能把它單獨(dú)拿出來,單獨(dú)使用,把它單獨(dú)賦值給1個(gè)其它類型的變量,而且同種數(shù)據(jù)類型的數(shù)我就可以相互賦值,數(shù)組里面的數(shù)可以復(fù)制給其它的變量,其它的變量也可以賦值給數(shù)組里面的任意1個(gè)數(shù),這都是可以的,這就是我們數(shù)組在程序中的應(yīng)用。
現(xiàn)在來講最后1種數(shù)組,字符型數(shù)組,字符型數(shù)組其實(shí)跟之前所說的整型數(shù)組、浮點(diǎn)型數(shù)組是1樣的,它就只是它里面存的那個(gè)數(shù)據(jù)類型是1個(gè)字符型的而已。
以女人舉個(gè)例子,女人的英文是woman,那我九可以把這個(gè)單詞存儲(chǔ)到我的字符型數(shù)組里面,woman這個(gè)單詞1共是5個(gè)字母,可以把我這5個(gè)字母存到我1個(gè)數(shù)組里面,如果把字符型數(shù)組按照我們之前講的那些,數(shù)組和浮點(diǎn)型數(shù)組的賦值方式,這樣給它賦值,我們的系統(tǒng)中是會(huì)給你報(bào)錯(cuò)的。
首先這個(gè)woman一共是5個(gè)字母,我再給它定義我這個(gè)數(shù)組的大小的時(shí)候,不能僅僅給它定義這5個(gè)字母是字符型數(shù)組的最后1個(gè)數(shù),我們是要給它空下來的那個(gè)數(shù),就是1個(gè)固定的字符型數(shù)組的1個(gè)結(jié)束標(biāo)志為這個(gè)標(biāo)志位1定是/0,你可以給它定義這個(gè)/0,你也可以不給它定義這個(gè)/0,不給它定義的時(shí)候,它自己會(huì)自動(dòng)給它填上這個(gè)/0,就是我定義1個(gè)字符型數(shù)組的時(shí)候,它的系統(tǒng)在它最后1個(gè)存儲(chǔ)單元中給它規(guī)定了,這個(gè)存儲(chǔ)單元什么也不能存,就只能存儲(chǔ)1個(gè)結(jié)束的那個(gè)標(biāo)志位,所以說我們這個(gè)woman它1共是5個(gè)字母,給它定義數(shù)組大小的時(shí)候,一定要大于等于六個(gè),才能把這個(gè)woman給存得下,否則這個(gè)woman存不下的。
如果給它賦值的話就給它賦1個(gè)結(jié)束標(biāo)志位,就是那個(gè)/0,不給它賦的時(shí)候會(huì)自動(dòng)加上1個(gè)/0。
定義字符型的2維數(shù)組的時(shí)候也是一樣的,因?yàn)?維數(shù)組里面存的是很多個(gè)1維數(shù)組,就相當(dāng)于2維數(shù)組里面是存的是很多串?dāng)?shù),所以說再定義2維數(shù)組它的大小的時(shí)候,第1個(gè)表達(dá)式就是它1共是幾個(gè)字符串,但是第2個(gè)表達(dá)式,列數(shù)1定要是那么多字符串中最長的那個(gè)字符串,還要加1,因?yàn)橐?個(gè)空間給它存它的結(jié)束標(biāo)志,寫個(gè)0。
我們定義1個(gè)字符型的2維數(shù)組,A8081,是不是1共存80個(gè)字符串,而且它這80個(gè)字符串中最長的1個(gè)字符串1共是80個(gè)字符。
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6040文章
44594瀏覽量
636966 -
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137267 -
字符串
+關(guān)注
關(guān)注
1文章
585瀏覽量
20563
原文標(biāo)題:單片機(jī)c語言組數(shù)怎么用,怎么定義和賦值
文章出處:【微信號:電子技術(shù)控,微信公眾號:電子技術(shù)控】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論