C 語(yǔ)言的常量
我們通常意義上的常量其實(shí)和英語(yǔ)中的常量這個(gè)單詞不是一個(gè)意思,漢語(yǔ)中的常量對(duì)應(yīng)的是 Literal(字面值),而不是 Constant(常量)。
這里我們分別講一下這兩個(gè)內(nèi)容,大家就會(huì)有自己的對(duì)于“常量”的相關(guān)的認(rèn)識(shí)了。
1. 字面值
字面值通常用來(lái)表示一個(gè)固定的值。這些值可以直接用在程序中,而不需要像變量一樣經(jīng)過(guò)聲明和初始化以后才可以使用。
字面值分為以下幾種:
1.1 整數(shù)
這里的整數(shù)包含十進(jìn)制,八進(jìn)制和十六進(jìn)制。
八進(jìn)制前要加上前綴 0,十六進(jìn)制前要加上前綴 0x 或者 0X 。
同時(shí)在這些整數(shù)的后面可以增加后綴 U 或者 L。這里和上面一樣帶小寫(xiě)都可以。這兩個(gè)后綴分別代表著 unsigned 和 long,
Tips: 請(qǐng)大家注意 C 語(yǔ)言對(duì)于大小寫(xiě)是敏感的。所以在十六進(jìn)制的時(shí)候才會(huì)出現(xiàn)兩種前綴。
比如:
- 十進(jìn)制:1,2,3,4;
- 八進(jìn)制:0345;
- 十六進(jìn)制:0xef12。
1.2 浮點(diǎn)數(shù)
浮點(diǎn)數(shù)的表示一般由整數(shù)部分,小數(shù)點(diǎn),小數(shù)部分,和指數(shù)部分組成。指數(shù)部分的符號(hào) e 可以大寫(xiě)為 E。一般會(huì)有一下幾種形式。
- 只有整數(shù)部分,小數(shù)點(diǎn)和小數(shù)部分。例如:3.1415926;
- 包含整數(shù)部分,小數(shù)點(diǎn),小數(shù)部分和指數(shù)部分。例如:1.312E-3;
- 只有整數(shù)和指數(shù)部分。例如:31415926e-7L。
1.3 字符
字符就是常見(jiàn)的我們鍵盤(pán)上可以敲入的英文字母,符號(hào)等。如:a,s,d,f,;,@ 等
1.4 字符串
字符串就是由一些列的字符用雙引號(hào)包圍。例如:
Tips:這里的雙引號(hào)(" ")是在英文輸入法下輸入的引號(hào),不是中文輸入法中的引號(hào)。這點(diǎn)在系統(tǒng)中同時(shí)有中文和英文輸入法的環(huán)境下很容易引起錯(cuò)誤。
"hello world!"
"This is a lesson for C language."
2. 常量
講完了字面值之后,我們就可以在這里可以認(rèn)識(shí)一下 C 語(yǔ)言中的用英文原文直譯過(guò)來(lái)的常量是什么了。
有些時(shí)候,我們需要反復(fù)使用一些內(nèi)容,比如計(jì)算圓周率的派值。如果程序中很多地方使用,而這個(gè)值始終又是不變的,甚至應(yīng)該是不能隨意改變的。那么這是時(shí)候。我們就會(huì)用到 C 語(yǔ)言中的常量。
這里有 2 種方式來(lái)定義常量。
一種是使用預(yù)處理命令 #define
。
#define pi 3.1415926
這種方式一般出現(xiàn)在程序函數(shù)體的外部。還有一種方式是在函數(shù)體內(nèi)部使用關(guān)鍵字 const。
const float pi = 3.1415926;
常量定義好之后在程序編譯和執(zhí)行的過(guò)程中是永遠(yuǎn)不會(huì)改變的,直接拿來(lái)使用即可。
3. 小結(jié)
C 語(yǔ)言中的常量可能和我之前所認(rèn)識(shí)的常量不太一樣。其實(shí)叫做字面值更為貼切一點(diǎn)。它是由整數(shù)數(shù)字,浮點(diǎn)數(shù)字,字符,字符串等組成。
而與常量這個(gè)英文單詞對(duì)應(yīng)的確實(shí)也是一個(gè)常量,只不過(guò)這個(gè)常量是一個(gè)不可以變化的量。只是用一個(gè)特定的名稱,代表了另外一個(gè)字面值。這個(gè)常量是恒定的。不可以嘗試改變一個(gè)常量,因?yàn)闀?huì)產(chǎn)生錯(cuò)誤。而常量的定義也會(huì)有兩種不同的方式。一種是采用預(yù)處理的方式,而另外一種則是采用了關(guān)鍵字的定義。兩者定義的位置也是不一樣的,我們?cè)谑褂玫臅r(shí)候要注意這一點(diǎn)。