- 編寫(xiě)高質(zhì)量代碼:改善C程序代碼的125個(gè)建議
- 馬偉 著
- 715字
- 2019-01-01 01:33:13
建議7:變量聲明應(yīng)該力求簡(jiǎn)潔
對(duì)于“變量”這個(gè)詞語(yǔ),相信大家再熟悉不過(guò)了,任何一種編程語(yǔ)言都離不開(kāi)變量。變量是在內(nèi)存或寄存器中用一個(gè)標(biāo)識(shí)符命名的存儲(chǔ)單元,可以用來(lái)存儲(chǔ)一個(gè)特定類型的數(shù)據(jù),并且數(shù)據(jù)的值在程序運(yùn)行過(guò)程中可以修改。例如:
int i;
上面這個(gè)語(yǔ)句定義了一個(gè)int類型的變量i,即它要求系統(tǒng)在內(nèi)存中分配一個(gè)類型為int型的存儲(chǔ)空間。因此,執(zhí)行語(yǔ)句“int i”后,內(nèi)存中的映像可能會(huì)如圖1-38所示。

圖1-38 變量(int i)的存儲(chǔ)
在32位計(jì)算機(jī)系統(tǒng)中,int型變量占用4個(gè)字節(jié)(即圖1-38中編號(hào)為1245012~1245015的4個(gè)存儲(chǔ)單元)。當(dāng)然,你也可以使用語(yǔ)句“sizeof(i)”得到存儲(chǔ)字節(jié)。同時(shí),還可以從圖1-38中看出,變量名實(shí)質(zhì)是內(nèi)存單元地址的一個(gè)符號(hào),比如,變量i就代表著內(nèi)存地址1245012,即變量所占內(nèi)存單元的首地址。
由此可見(jiàn),變量首先是一個(gè)標(biāo)識(shí)符或名稱,就像一個(gè)客房的編號(hào)一樣,有了這個(gè)編號(hào)我們?cè)诮涣髦芯涂梢苑奖惚磉_(dá),否則,我們只可意會(huì),那多不方便。為了方便,我們?cè)诮o變量命名時(shí),首先,最好符合大多數(shù)人的習(xí)慣,基本可以望名知義,這就會(huì)便于交流和維護(hù);其次,變量是唯一確定的對(duì)應(yīng)內(nèi)存若干存儲(chǔ)單元或者某個(gè)寄存器的。當(dāng)用戶使用變量時(shí),其本質(zhì)是訪問(wèn)該變量所對(duì)應(yīng)的內(nèi)存單元。
一旦定義了變量,那么變量就至少需要為我們提供兩個(gè)信息:一是變量的地址,即操作系統(tǒng)為變量在內(nèi)存中分配的若干內(nèi)存的首地址;二是變量的值,即變量在內(nèi)存中所分配的那些內(nèi)存單元中所存放的數(shù)據(jù)。
因此,我們至少還需要給上面的變量i賦上一個(gè)初值,如下面的代碼所示:
i=100;
上面的語(yǔ)句“i=100”表示將整型常量100保存到i中,實(shí)質(zhì)上是將100保存到內(nèi)存中以1245012為起始地址的4個(gè)存儲(chǔ)單元(即1245012~1245015)。因此,執(zhí)行語(yǔ)句“i=100”后,可想象內(nèi)存映像如圖1-39所示。

圖1-39 在內(nèi)存中存入數(shù)據(jù)(int i=100)
- Java設(shè)計(jì)模式及實(shí)踐
- Apache Mahout Clustering Designs
- ElasticSearch Cookbook(Second Edition)
- Visual Basic程序設(shè)計(jì)習(xí)題與上機(jī)實(shí)踐
- JavaScript腳本特效編程給力起飛
- Node.js區(qū)塊鏈開(kāi)發(fā)
- Mastering Apache Camel
- 計(jì)算機(jī)程序的構(gòu)造和解釋(JavaScript版)
- HTML 5與CSS 3權(quán)威指南(第4版·下冊(cè))
- 測(cè)試基地實(shí)訓(xùn)指導(dǎo)
- Ajax與jQuery程序設(shè)計(jì)
- C++ Primer(中文版)(第5版)
- Building Web Applications with Flask
- ReactJS Blueprints
- Mastering Java 11