什么是變量?變量自然和常量是相對的。常量就是1、2、3、4.5、10.6......等固定的數(shù)字,而變量則根我們小學(xué)學(xué)的 x 是一個(gè)概念,我們可以讓它是1,也可以讓它2,我們想讓它是幾是我們的程序說了算的。
那么我們小學(xué)學(xué)的數(shù)學(xué)里邊,有這么幾類,正數(shù)、負(fù)數(shù)、整數(shù)和小數(shù)。在 C 語言里,除名字和我們數(shù)學(xué)里學(xué)的不一樣外,還對數(shù)據(jù)大小進(jìn)行了限制。這個(gè)地方有一點(diǎn)復(fù)雜的是,在 C51 里邊的數(shù)據(jù)范圍和其他編程環(huán)境還可能不完全一樣,因此我們下邊的這個(gè)圖,僅僅代表的是 C51,其他編程環(huán)境可能不一樣,大家知道有這回事就可以了。
C 語言的數(shù)據(jù)基本類型分為字符型、整型、長整型以及浮點(diǎn)型,如圖4-1所示。
http://wiki.jikexueyuan.com/project/mcu-tutorial-one/images/45.png" alt="" />
圖4-1 C 語言基本數(shù)據(jù)類型
圖4-1中,四種基本類型,每個(gè)基本類型又包含了兩個(gè)類型。字符型、整型、長整型,除了可表達(dá)的數(shù)值大小范圍不同之外,都是只能表達(dá)整數(shù),而 unsigned 型的又只能表達(dá)正整數(shù),要表達(dá)負(fù)整數(shù)則必須用 signed 型,如要表達(dá)小數(shù)的話,則必須用浮點(diǎn)型了。
比如上節(jié)課最后的閃爍 LED 小燈的程序,我們用的是 unsigned int i = 0;這個(gè)地方 i 的取值范圍就是0~65535,在接下來的 for 語句里,如果我們把原來那個(gè)30000改成70000的話,for(i=0;i<70000;i++);大家會發(fā)現(xiàn)小燈會一直亮,而不是閃爍了,這里自然就有因超出 i 取值范圍所造成的問題,但要徹底搞明白這個(gè)問題,我們還要來了解 for 語句的用法。不用急,接下來我們很快就會學(xué)到它了。
這里有一個(gè)編程宗旨,就是能用小不用大。就是說定義能用1個(gè)字節(jié) char 解決問題的,就不定義成 int,一方面節(jié)省 RAM 空間可以讓其他變量或者中間運(yùn)算過程使用,另外一方面,占空間小程序運(yùn)算速度也快一些。