干貨分享 | C語(yǔ)言常量知識(shí)
發(fā)布時(shí)間:2023-06-01 14:11:32
整數(shù)常量
下面列舉幾個(gè)整數(shù)常量的實(shí)例:
212/* 合法的 */
215u/* 合法的 */
0xFeeL/* 合法的 */
078/* 非法的:8 不是八進(jìn)制的數(shù)字 */
032UU/* 非法的:不能重復(fù)后綴 */
以下是各種類型的整數(shù)常量的實(shí)例:
85/* 十進(jìn)制 */
0213/* 八進(jìn)制 */
0x4b/* 十六進(jìn)制 */
30/* 整數(shù) */
30u/* 無(wú)符號(hào)整數(shù) */
30l/* 長(zhǎng)整數(shù) */
30ul/* 無(wú)符號(hào)長(zhǎng)整數(shù) */
浮點(diǎn)常量
浮點(diǎn)常量由整數(shù)部分、小數(shù)點(diǎn)、小數(shù)部分和指數(shù)部分組成。您可以使用小數(shù)形式或者指數(shù)形式來(lái)表示浮點(diǎn)常量。
當(dāng)使用小數(shù)形式表示時(shí),必須包含整數(shù)部分、小數(shù)部分,或同時(shí)包含兩者。當(dāng)使用指數(shù)形式表示時(shí), 必須包含小數(shù)點(diǎn)、指數(shù),或同時(shí)包含兩者。帶符號(hào)的指數(shù)是用 e 或 E 引入的。
下面列舉幾個(gè)浮點(diǎn)常量的實(shí)例:
3.14159/* 合法的 */
314159E-5L/* 合法的 */
510E/* 非法的:不完整的指數(shù) */
210f/* 非法的:沒有小數(shù)或指數(shù) */
.e55/* 非法的:缺少整數(shù)或分?jǐn)?shù) */
字符常量
字符常量是括在單引號(hào)中,例如,'x' 可以存儲(chǔ)在 char 類型的簡(jiǎn)單變量中。
字符常量可以是一個(gè)普通的字符(例如 'x')、一個(gè)轉(zhuǎn)義序列(例如 '\t'),或一個(gè)通用的字符(例如 '\u02C0')。
在 C 中,有一些特定的字符,當(dāng)它們前面有反斜杠時(shí),它們就具有特殊的含義,被用來(lái)表示如換行符(\n)或制表符(\t)等。下表列出了一些這樣的轉(zhuǎn)義序列碼:
轉(zhuǎn)義序列 | 含義 |
---|---|
\\ | \ 字符 |
\' | ' 字符 |
\" | " 字符 |
\? | ? 字符 |
\a | 警報(bào)鈴聲 |
\b | 退格鍵 |
\f | 換頁(yè)符 |
\n | 換行符 |
\r | 回車 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ooo | 一到三位的八進(jìn)制數(shù) |
\xhh . . . | 一個(gè)或多個(gè)數(shù)字的十六進(jìn)制數(shù) |
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
HelloWorld
字符串常量
字符串字面值或常量是括在雙引號(hào) " " 中的。一個(gè)字符串包含類似于字符常量的字符:普通的字符、轉(zhuǎn)義序列和通用的字符。
您可以使用空格做分隔符,把一個(gè)很長(zhǎng)的字符串常量進(jìn)行分行。
下面的實(shí)例顯示了一些字符串常量。下面這三種形式所顯示的字符串是相同的。
"hello, dear"
"hello, \
dear"
"hello, ""d""ear"
字符串常量在內(nèi)存中以 null 終止符 \0 結(jié)尾。例如:
char myString[]="Hello, world!";//系統(tǒng)對(duì)字符串常量自動(dòng)加一個(gè) '\0'
定義常量
在 C 中,有兩種簡(jiǎn)單的定義常量的方式:
使用 #define 預(yù)處理器。
使用 const 關(guān)鍵字。
#define 預(yù)處理器
下面是使用 #define 預(yù)處理器定義常量的形式:
#define identifier value
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
value of area :50
const 關(guān)鍵字
您可以使用 const 前綴聲明指定類型的常量,如下所示:
const type variable = value;