那些年,一起看過C 語言的常量和變量

? ? ? ?在C語言中,根據(jù)存儲方式和表示形式,數(shù)據(jù)有常量和變量之分,就像方程有已知數(shù)和未知數(shù)一樣。那么,你知道二者的區(qū)別和應(yīng)用嗎?讓我們開始“常量和變量”之旅吧!

<一>常量:

? ? ? 常量是程序中不可改變的量,常以字面量,或者宏[#define( 在預(yù)處理就處理)]的方式出現(xiàn)。主要用于賦值或是參與計算,并且常量也是用類型的。常量主要分為數(shù)值常量、字符常量、字符串常量和符號常量四種。在這里,我先說一下字符常量和字符串常量的區(qū)別。周所周知在C語言中,字符常量就是指單引號里的單個字符,eg:‘a(chǎn)’;而字符串常量用雙引號,eg:“a”?。但兩者的存儲空間也有不同,在內(nèi)存中,字符常量只占用一個存儲空間,而字符串存儲時必須有占用一個存儲空間的結(jié)束標記'\o',所以,'a'占用一個,而"a"占用兩個;還有二者的操作功能也不相同,eg:字符常量可進行加減運算,字符串常量不能。

舉個字符常量的例子:

01 ? #include02? int main()

03? {

04? ? ? printf("a,A \n"); ? ? ? ? ? ? ? /*輸出a,A并換行*/

05? ? ? printf("123\x20\'\x20\"\n"); ? ? /*輸出123、空格、? 單引號、空格和雙引號,最后換行*/

06? ? ? return 0;

}

? ? ? 接下來說一下符號常量吧。首先,符號常量不同于變量,它的值在其作用域內(nèi)不能改變,也不能被賦值。 在拼寫習慣上,符號常量名用大寫英文標識符,而變量名用小寫英文標識符,以示區(qū)別。 定義符號常量的目的是為了提高程序的可讀性,便于程序的調(diào)試和修改。因此在定義符號常量名時,應(yīng)盡量使其表達它所代表的常量的含義。 而且符號常量對程序中用雙引號括起來的字符串,即使與符號一樣,預(yù)處理時也不做替換。

<二>變量

? ? ? ?變量用于存儲程序中可以改變的數(shù)據(jù)。其實變量就像一個存放東西的抽屜,知道了抽屜的名字(變量名),也就能找到抽屜的位置(變量的存儲單元)以及抽屜里的東西(變量的值)等。當然,抽屜里存放的東西也是可以改變的,也就是說,變量里的值也是可以變化的。

? ? ? 簡單的來說,變量的定義:類型 ? ?變量名;

? ? ? 經(jīng)過一些推敲總結(jié)出變量的4個基本屬性:

? ? ? ⑴ 變量名:一個符合規(guī)則的標識符。⑵ 變量類型:C語言中的數(shù)據(jù)類型或者是自定義的數(shù)據(jù)類型。⑶ 變量位置:數(shù)據(jù)的存儲空間位置。⑷ 變量值:數(shù)據(jù)存儲空間內(nèi)存放的值。

程序編譯時會給每個變量分配存儲空間和位置,程序讀取數(shù)據(jù)的過程其實就是根據(jù)變量名查找內(nèi)存中相應(yīng)的存儲空間,從其內(nèi)取值的過程。

? ? ? 變量的命名規(guī)則:?

a.變量名可以由字母、數(shù)字和_(下劃線)組合而成;

b.?變量名不能包含除_ 以外的任何特殊字符,如:%、# 、逗號、空格等;

c.?變量名必須以字母或_(下劃線)開頭。?變量名不能包含空白字符(換行符、空格和制表符稱為空白字符);

d.?C 語言中的某些詞(例如int 和float 等)稱為保留字,具有特殊意義,不能用作變量名。

? ? ?變量的命名,本人建議用“駝峰命名法”eg:myFirstBook。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、標識符 什么事標識符呢?變量的名字就是標識符。不僅限于變量名,程序中各種元素的名字,都屬于標識符。例如符號常量...
    滕王閣序閱讀 1,081評論 0 0
  • 基本內(nèi)置類型 算術(shù)類型字符整型布爾值浮點數(shù) 空類型(void) 算術(shù)類型 帶符號類型和無符號類型int、short...
    2625K閱讀 3,654評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 面試過很多次,我更喜歡面試官不是人事專員。但凡人事專員面試,提的問題大同小異,每一份工作的辭職原因,為什么來應(yīng)聘這...
    八文閱讀 445評論 0 0
  • 綠色的你閱讀 201評論 0 0

友情鏈接更多精彩內(nèi)容