官术网_书友最值得收藏!

2.2 常量與變量

C語(yǔ)言中的常量與變量,首先從名字上就能清楚地看出它們之間這種互斥的關(guān)系。“常”有恒久的意思,即在C語(yǔ)言中能夠保持恒久不變的量就叫作常量,反之,若其值能夠發(fā)生變化就稱為變量。下面先來(lái)看看C語(yǔ)言中都有哪些常量吧。

2.2.1 常量

常量通常都是以值的形式出現(xiàn),我們之前所學(xué)的C語(yǔ)言的基本數(shù)據(jù)類型,都有與之對(duì)應(yīng)的常量。另外,我們還會(huì)認(rèn)識(shí)一個(gè)特殊的字符串常量。

1.整型常量

C語(yǔ)言中,任意的整數(shù)值都是整型常量,而且整數(shù)值可以采用八進(jìn)制、十進(jìn)制或十六進(jìn)制的格式來(lái)書(shū)寫(xiě)。例如有一個(gè)整數(shù)值13,分別采用八進(jìn)制、十進(jìn)制和十六進(jìn)制的格式來(lái)書(shū)寫(xiě),如表2.6所示。

表2.6 整數(shù)值13的各種進(jìn)制書(shū)寫(xiě)方式

還有一點(diǎn)需要知道,默認(rèn)的整數(shù)值是int類型,即為標(biāo)準(zhǔn)整型常量,如果在整數(shù)的后面加上字母L(大小寫(xiě)均可),如“13L”,則它就是一個(gè)長(zhǎng)整型常量了;如果在整數(shù)的后面加上字母U(大小寫(xiě)均可),如“13U”,則它就是一個(gè)無(wú)符號(hào)的標(biāo)準(zhǔn)整型常量了;甚至把這兩個(gè)結(jié)合起來(lái),如“13UL”,這就是個(gè)無(wú)符號(hào)長(zhǎng)整型常量了。

2.實(shí)型常量

同樣的,在C語(yǔ)言中,任何帶有小數(shù)點(diǎn)的合法數(shù)值就是實(shí)型常量,如“2.0”,還可以是“2.”。哈哈,沒(méi)寫(xiě)錯(cuò)!如果沒(méi)有小數(shù)點(diǎn),它就是整型常量,有了這個(gè)小數(shù)點(diǎn),它就是個(gè)實(shí)型常量了。默認(rèn)的實(shí)型常量都是double類型的,如果想要一個(gè)float類型的實(shí)型常量,在后面加上字母F(大小寫(xiě)均可)就可以了,例如“2.0F”或“2.f”。

3.字符常量

把一個(gè)字符用單引號(hào)包含起來(lái)就是字符常量,'a'、'B'、'5'、'\n',這些都是字符常量。使用字符常量的時(shí)候有三點(diǎn)需要注意:①單引號(hào)不能使用中文單引號(hào),‘c’是錯(cuò)誤的,'c'是正確的;②單引號(hào)中只能包含一個(gè)字符,'ab'是錯(cuò)誤的。有的讀者可能會(huì)說(shuō),之前看到有'\n',它怎么可以?其實(shí)單引號(hào)中所包含的“\n”只能算是一個(gè)字符,起到換行的作用,稱為轉(zhuǎn)義字符。C語(yǔ)言中用“\”作前綴的字符稱為轉(zhuǎn)義字符,也就是說(shuō)緊跟在“\”之后的那個(gè)字符不再是普通字符,而是變?yōu)橐粋€(gè)有著特殊意義的字符了,常用的一些轉(zhuǎn)義字符見(jiàn)表2.7;③單引號(hào)中不能為空,''是錯(cuò)誤的,而' '是正確的。不要驚訝,再仔細(xì)看看,后面的那個(gè)在兩個(gè)單引號(hào)之間有空格字符,所以正確。

表2.7 常用的轉(zhuǎn)義字符

由于字符類型本身可以看成是1字節(jié)的整型,所以字符常量與整型常量有時(shí)可以互換使用,例如字符常量'a'就可以看成整數(shù)常量97,其實(shí)就是字符所對(duì)應(yīng)的ASCII碼值。同樣的,對(duì)于整數(shù)常量48,我們也可以把它當(dāng)成字符常量'0'來(lái)使用。

4.字符串常量

在C語(yǔ)言里,是沒(méi)有字符串這種數(shù)據(jù)類型的,但卻有字符串常量。用英文雙引號(hào)括起來(lái)的內(nèi)容稱為字符串常量或簡(jiǎn)稱字符串,如"abc"、"123"、""。第一個(gè)是由3個(gè)小寫(xiě)字母組成的字符串;第二個(gè)是由3個(gè)數(shù)字字符組成的字符串;第三個(gè)比較特殊,雙引號(hào)中沒(méi)有任何內(nèi)容,它是空字符串。回想一下,第1章的第一個(gè)C程序中,在調(diào)用printf函數(shù)的時(shí)候,就使用到了字符串,“printf("第一個(gè)C程序!\n");”,這個(gè)字符串是由一串中文字符和一個(gè)轉(zhuǎn)義字符“\n”構(gòu)成的。使用字符串的時(shí)候也需要注意兩點(diǎn):①雙引號(hào)必須使用英文的符號(hào),不可使用中文雙引號(hào);②字符串不可嵌套使用,即不能在一個(gè)字符串中又出現(xiàn)了另外一個(gè)字符串,如果想在字符串中使用雙引號(hào)字符本身,需使用轉(zhuǎn)義字符“\"”。字符串在程序中的使用極其廣泛,在后面的學(xué)習(xí)中,我們會(huì)一直和它打交道。

2.2.2 變量

講完了常量,現(xiàn)在該變量“粉墨登場(chǎng)”了,變量與常量除了在其值是否能發(fā)生變化上有區(qū)別之外,兩者之間的形態(tài)也有所不同。常量通常都是以值的形式存在,而變量看上去卻像一個(gè)“容器”。不同類型的變量就像不同大小的“容器”,里面可以放置不同類型和大小的數(shù)據(jù)。例如有一個(gè)字符型的變量,那么就可以在這個(gè)變量里面放置–128~127的某個(gè)整數(shù);如果是一個(gè)短整型的變量,就可以在里面放置–32768~32767的某個(gè)整數(shù);如果是一個(gè)無(wú)符號(hào)短整型的變量,就可以在里面放置0~65535的某個(gè)整數(shù);如果是一個(gè)實(shí)型的變量,就可以在里面放置一個(gè)小數(shù)。是不是非常像一個(gè)“容器”?變量與常量還有一點(diǎn)不同,常量就是表示值本身,而變量通常擁有名字,我們把這個(gè)名字稱為變量名。用戶通過(guò)變量名可以非常方便地訪問(wèn)和操作變量里面所放置的數(shù)據(jù)。是不是很神奇?下面就來(lái)講述如何定義一個(gè)變量。

1.變量的定義

C語(yǔ)言中變量的定義格式如下:

類型說(shuō)明符  變量名;

其中“類型說(shuō)明符”是用于說(shuō)明所定義出的變量將來(lái)可以放置什么類型的數(shù)據(jù),可以是我們前面講過(guò)的C語(yǔ)言的基本類型,也可以是后面才會(huì)講到的其他類型。“變量名”就是我們給變量所起的名字,不過(guò)起名字時(shí)有三個(gè)需特別注意的地方:①不能使用C語(yǔ)言里面的關(guān)鍵字作為變量名,所謂關(guān)鍵字就是C語(yǔ)言所規(guī)定的一些具有特殊意義的標(biāo)識(shí)符。表2.8中列出了C語(yǔ)言中最經(jīng)典的32個(gè)關(guān)鍵字。②變量名必須以字母或下畫(huà)線“_”開(kāi)頭,不能以數(shù)字開(kāi)頭。③變量名不可重復(fù)定義。下面就試著定義幾個(gè)變量吧。

表2.8 C語(yǔ)言經(jīng)典32個(gè)關(guān)鍵字

下面再來(lái)幾個(gè)有錯(cuò)誤的。

C語(yǔ)言是區(qū)分大小寫(xiě)的,所以使用大小寫(xiě)不同的變量名是可以的,并不算重復(fù),例如同樣的三個(gè)字母可以定義出不同的變量名出來(lái):“abc”“Abc”“aBc”“abC”“ABc”“aBC”“AbC”“ABC”,不過(guò)不建議這么用。

另外,還可以一次定義多個(gè)同類型的變量,變量名之間用逗號(hào)分隔,如:

int a, b, c;        //定義了3 個(gè)整型變量,變量名分別為a,b,c
2.變量的初始化與賦值

我們學(xué)會(huì)了如何定義一個(gè)變量,但現(xiàn)在這個(gè)變量的值是不確定的,如果想讓這個(gè)變量擁有一個(gè)確定的值,就得對(duì)這個(gè)變量進(jìn)行初始化或賦值的操作。這時(shí)就需要用到一個(gè)運(yùn)算符“=”,小學(xué)就認(rèn)識(shí)的“等于號(hào)”,但我們不該叫它“等于運(yùn)算符”,而應(yīng)把它稱為“賦值運(yùn)算符”,因?yàn)樗贑語(yǔ)言中的作用不是用于判斷等號(hào)兩邊的值是否相等,而是將右邊的值賦給左邊的變量。是不是非常像往容器里放置一些物品?如果把這種賦值的操作用在定義變量的同時(shí),就稱為變量的初始化:

int a = 100;  //定義整型變量a的同時(shí)將其值初始化為100

反之,如果不是在定義變量的時(shí)候進(jìn)行賦值操作,就不是變量的初始化了,而只是普通的賦值操作:

int a;    //定義一個(gè)整型變量a,其值是未確定的
a = 100;  //將整型常量值100賦給變量a

現(xiàn)在知道初始化與賦值之間的區(qū)別了吧?既然已經(jīng)遇到了賦值運(yùn)算符,那就接著再來(lái)看看C語(yǔ)言中還有哪些其他的運(yùn)算符吧。

主站蜘蛛池模板: 镇江市| 杨浦区| 大宁县| 惠来县| 淮安市| 通山县| 宾川县| 军事| 巴林左旗| 黎平县| 丰城市| 香格里拉县| 尖扎县| 桑植县| 元氏县| 巴里| 汤阴县| 衡山县| 太仓市| 二连浩特市| 定边县| 白玉县| 成安县| 上犹县| 环江| 镇平县| 克东县| 广河县| 崇明县| 兴隆县| 黑水县| 日土县| 昌平区| 湖口县| 巩留县| 宜兰市| 静海县| 商河县| 和政县| 刚察县| 达孜县|