使用變量
定義變量的同時(shí)可以給定一個(gè)值,這叫初始化變量;未初始化的變量,其值在程序運(yùn)行時(shí)是不確定的。變量在定義之后可以多次設(shè)置值,這稱為賦值。定義使得變量從無到有,而賦值則改變已有變量的狀態(tài)。變量只能被初始化一次,但可以進(jìn)行多次賦值,這兩種操作均是通過賦值運(yùn)算符(=)執(zhí)行的。
變量初始化語法:**變量類型 變量名 = 表達(dá)式;**
為變量賦值語法:**變量名 = 表達(dá)式;**
在初始化或賦值時(shí),我們給了變量一個(gè)具體的值,如 'x'、3.14、200等,像這種通過字面表達(dá)就能知道其值的數(shù)值,稱為字面量。之前使用printf函數(shù)輸出的字符串,也是一個(gè)字面量。
也可以在一行代碼中同時(shí)定義同一類型的多個(gè)變量,變量之間用逗號(hào)分隔;也可以在定義的同時(shí)初始化,但作為一個(gè)良好的實(shí)踐,并不建議這樣做。
可以將變量想像為一個(gè)能收納的盒子:
賦值相當(dāng)于給盒子放入一個(gè)物體。
盒子每次僅能存放一個(gè)物體,當(dāng)將第二個(gè)物體放入盒子中時(shí),第一個(gè)物體被移出,即前一個(gè)變量值被覆蓋。
盒子只能存放同一類型或能轉(zhuǎn)換到此類型的物體。
盒子可以重復(fù)使用,即多次賦值。
輸出變量
輸出變量時(shí)要使用相應(yīng)的格式控制符,char、int、double 這三種類型的變量輸出格式符分別是: %c、%d、%f。一開始我們可能記不清格式符是%d還是d%時(shí),記?。?strong>特殊的字符在前面!符號(hào)%與字母d相比較,%比較特殊,因此它在前面,記作%d而非d%。輸出這三種類型的變量值可以使用如下代碼:
這是我們第一次擴(kuò)展使用printf函數(shù)。printf函數(shù)的第一個(gè)參數(shù)是一個(gè)用雙引號(hào)擴(kuò)起來的字符串,它也叫格式化字符串。以前我們只是簡單的輸出文本,現(xiàn)在這個(gè)字符串中有了格式控制符,因此,它成了真正意義上的格式化字符串。
當(dāng)這個(gè)字符串有1個(gè)格式控制符時(shí),你需要在字符串結(jié)束后,加上要輸出的變量或字面量,并用 ',' 與字符串隔開;多個(gè)變量時(shí),以此類推;非格式控制符或轉(zhuǎn)換字符則按原樣輸出。
當(dāng)輸出變量時(shí)如果數(shù)據(jù)類型與格式符不匹配,可能會(huì)得到你想要的結(jié)果,也可能會(huì)出錯(cuò),這取決于你的使用目的。下面的代碼,使用%d格式符輸出char類型,便得到了字母對(duì)應(yīng)的ASCII碼值,因?yàn)閏har類型事實(shí)上是一種小整型。

定義一個(gè)char型變量并初始化為65,這個(gè)值代表什么含義呢?
一種可能就是它就是數(shù)值65,不過如果我們使用%c控制符將這個(gè)變量打印出來,就得到了字母'A'。這個(gè)時(shí)候你可以嘗試了解一下ASCII碼表。


習(xí)題
使用一行代碼運(yùn)用多個(gè)格式控制符輸出一組變量。
打印一個(gè)未初始化、也沒賦值的變量,看看是什么結(jié)果。
測試printf函數(shù),當(dāng)格式化字符串中有多個(gè)控制符,但少給1個(gè)參數(shù)時(shí)的輸出情況。
定義5個(gè)變量,初始值依次為 72、101、108、108、111,使用 %c 格式符打印結(jié)果。