在定義變數時,變數名可以是字母、數位和下劃線的組合。但是也不是隨便的組合,要注意以下幾個命名規則:
1) 變數名的開頭必須是字母或下劃線,不能是數位。實際程式設計中最常用的是以字母開頭,而以下劃線開頭的變數名是系統專用的。
隨便開啟一個標頭檔案就會看到,它裡面所有的變數名、宏名、函數名全是以下劃線開始的。
開啟 VC++ 6.0 或者 VS 2010 等,然後在裡面隨便寫一個標頭檔案名,比如 stdio.h,然後選中它,右擊,在彈出的快捷選單中單擊Open Document"stdio.h"
就開啟stdio.h這個標頭檔案了。這時需要注意的是,開啟後千萬不要改動裡面的內容,看看就行了。
所以為了避免與系統定義的名字產生衝突,在程式設計的時候,除非要求這麼定義,否則永遠都不要使用下劃線作為一個變數名的開頭。
2) 變數名中的字母是區分大小寫的。比如 a 和 A 是不同的變數名,num 和 Num 也是不同的變數名。
3) 變數名絕對不可以是C語言關鍵字,這一點一定要記住!
4) 變數名中不能有空格。這個可以這樣理解:因為上面我們說過,變數名是字母、數位、下劃線的組合,沒有空格這一項。
命名規範
以上變數命名規則是C語言語法規定的,必須遵守,不遵守就是錯的。除此以外,在實際開發中程式設計師還形成了一種變數命名“習慣”,或者說是約定成俗的變數命名規範,它們雖然不受語法的約束,但是遵守這些“事實標準”會讓程式碼更加專業,更加高大上。
1) 禁止取單個字母作為變數名(如 a、b、c、d、i、j、k、m、n……)。在前面的講解中之所以用單個字母,只是為了方便講解,以免喧賓奪主。剛開始學的時候也可以用,但是不要永遠就只會用單個字母。
那為什麼不要定義成單個字母呢?原因很簡單——沒有含義!你定義變數 a,其他人怎麼知道這個 a 是什麼意思?就算有注釋,但難免會忘記。
所以在定義變數的時候,變數名最好要有明確的含義,這樣可以提高程式碼的可讀性。不管是自己寫程式,還是別人讀你的程式,都會很舒服。
在實際程式設計中經常用英文單詞或英文單詞的縮寫來作為變數名,而且縮寫也有一定要規則:
-
通常較短的單詞可通過去掉“元音”形成縮寫,比如表示“個數”的 count 可以縮寫成 cnt;
-
較長的單詞可取單詞中的幾個字母形成縮寫;
-
對於一些單詞還有大家公認的縮寫,比如:
-
temp 可縮寫為 tmp; //temp是“臨時”的意思
-
flag 可縮寫為 flg; //flag是“標誌位”的意思
-
statistic 可縮寫為 stat; //statistic是“統計”的意思
-
increment 可縮寫為 inc;
-
message 可縮寫為 msg;
如果變數名由多個單詞組成而且不用縮寫,那麼每個單詞的首字母全部都要用大寫,必要時可用下劃線分隔。
2) 但並不是說就絕對不可以用單個字母,有些變數它本身就是沒有含義,我們也不能硬生生給它賦予含義,這時候就可以用單個字母。比如後面學習回圈語句的時候,裡面有一個迴圈變數,它就是定義成 i、j、k,這已經是公認的了。
但大多數情況下,在程式設計的時候變數都是有含義的,這時候就應該用英文單詞或英文單詞的縮寫作為它的名字。