C語言常量和文字
常量是指該程序可能無法在其執行期間改變的固定值。這些固定值也被稱為文字。
常量可以是任何像一個整型常量,一個浮點常量,字符常量或字符串文字的基本數據類型。還可以是枚舉常量。
常量隻是它們的值不能定義後像常規變量進行修改處理。
常量整型
整數常量可以是十進製,八進製,或十六進製常數。前綴指定基或基數:0x或0X的十六進製,0表示八進製,十進製不用特彆表示。
整數常量/文字也可以有一個後綴為U和L的組合,分彆為無符號和長整型。後綴可以是大寫或小寫,並且可以以任意順序。
這裡是整數常量的一些例子:
212 /* Legal */ 215u /* Legal */ 0xFeeL /* Legal */ 078 /* Illegal: 8 is not an octal digit */ 032UU /* Illegal: cannot repeat a suffix */
以下是不同類型的整型常量的其他例子:
85 /* decimal */ 0213 /* octal */ 0x4b /* hexadecimal */ 30 /* int */ 30u /* unsigned int */ 30l /* long */ 30ul /* unsigned long */
浮點文字/常量
浮點字麵值具有整數部分,小數點,小數部分和指數部分。可以表示十進製形式或指數形式浮點文字。
同時采用十進製形式表示,則必須包括小數點,指數,或兩者並用而指數形式表示,則必須包括整數部分,小數部分,或者兩者兼有。無符號的指數,通過e或E引入
下麵是浮點麵值/常量的一些例子:
3.14159 /* Legal */ 314159E-5L /* Legal */ 510E /* Illegal: incomplete exponent */ 210f /* Illegal: no decimal or exponent */ .e55 /* Illegal: missing integer or fraction */
字符常量
字符文字用單引號,例如,'X' 可以存儲在char類型的一個簡單的變量。
字符文字可以是一個普通的字符(例如,'X'),轉義序列(如“ ')或普遍性 (e.g., 'u02C0').
有一些字符在C語言中,當它們前麵加一個反斜杠將有特殊的含義,它們被用來表示類似的換行符( )或製表符( )。在這裡,有一些這樣的轉義序列代碼的列表:
轉義序列 | 含意 |
---|---|
\ | 字符 |
' | ' 字符 |
" | " 字符 |
? | ? 字符 |
a | 警報或鐘 |
退格 | |
f | 換頁 |
換行符 | |
回車 | |
水平製表 | |
v | 水直製表 |
ooo | 一到三位數字的八進製數表示形式 |
xhh . . . | 一個或多個數字的十六進製數 |
以下為例子來說明一些轉義字符序列:
#include <stdio.h> int main() { printf("Hello World "); return 0; }
當上述代碼被編譯和執行時,它產生了以下結果:
Hello World
字符串文字
字符串文字或常量用雙引號“”。一個字符串包含類似於字符文字字符:普通字符,轉義序列和通用字符。
可以使用字符串和分隔使用空格打破長行變成多行。
下麵是字符串的一些例子。所有的三種形式是相同的字符串。
"hello, dear" "hello, dear" "hello, " "d" "ear"
定義常量
C語言有兩種簡單的方法來定義常量:
-
使用#define預處理。
-
使用const關鍵字。
#define預處理
下麵是使用預處理 #define 定義常量形式:
#define identifier value
下麵的例子說明了它的細節:
#include <stdio.h> #define LENGTH 10 #define WIDTH 5 #define NEWLINE ' ' int main() { int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); return 0; }
讓我們編譯和運行上麵的程序,這將產生以下結果:
value of area : 50
const關鍵字
可以使用 const的前綴來聲明常量與一個特定的類型如下:
const type variable = value;
下麵的例子說明了它的細節:
#include <stdio.h> int main() { const int LENGTH = 10; const int WIDTH = 5; const char NEWLINE = ' '; int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); return 0; }
讓我們編譯和運行上麵的程序,這將產生以下結果:
value of area : 50
請注意,一個 良好的編程習慣是使用大寫來定義常量。