C - 文字常數:初學者指南
你好,未來的程式設計師們!今天,我們將踏上一段令人興奮的旅程,進入 C 程式設計的世界,特別聚焦於文字常數。別擔心如果你從未寫過程式碼——我將成為你的友好導遊,我們會一步步來。在這個教學結束時,你會驚訝於你所學到的知識!
文字常數是什麼?
在我們深入之前,讓我們先了解文字常數是什麼。在程式設計中,文字常數是直接出現在程式碼中的固定值。它們就像是程式設計世界的常數——不變且可靠。把它們當作是你程序的建築塊。
現在,讓我們探討 C 語言中的不同類型的文字常數!
整數文字常數
整數文字常數是不帶有小數點的整數。在 C 語言中,我們可以用不同的方式表示整數。讓我們看一些例子:
int a = 42; // 十進制(基數 10)
int b = 052; // 八進制(基數 8)
int c = 0x2A; // 十六進制(基數 16)
int d = 0b101010; // 二進制(基數 2,C99 之後)
在這段代碼中:
-
42
是一個十進制文字常數(我們在日常生活中使用的) -
052
是一個八進制文字常數(注意前導 0) -
0x2A
是一個十六進制文字常數(注意前導 0x) -
0b101010
是一個二進制文字常數(注意前導 0b)
所有這些文字常數都代表相同的值:十進制的 42。數字能夠有不同的“外觀”不是很神奇嗎?
整數後綴
我們還可以給整數文字常數添加後綴來指定它們的類型:
int e = 42L; // 長整數
int f = 42U; // 無符號整數
int g = 42UL; // 無符號長整數
int h = 42LL; // 長長整數(C99 之後)
這些後綴幫助編譯器了解我們正在處理的整數類型。
浮點文字常數
現在,讓我們進入小數的世界!浮點文字常數是帶有小數點的數字。這裡有一些例子:
float pi = 3.14159;
double avogadro = 6.022e23; // 科學記數法
long double planck = 6.62607015e-34L; // 帶有 L 後綴的長雙精度
在這段代碼中:
-
3.14159
是一個簡單的浮點文字常數 -
6.022e23
使用科學記數法(e23 意味著 × 10^23) -
6.62607015e-34L
是一個長雙精度文字常數(注意 L 後綴)
請記住,浮點文字常數默認是雙精度的。如果你想要一個單精度浮點數,你可以使用 F 後綴:
float f = 3.14F;
字符文字常數
C 語言中的字符文字常數是用單引號括起的單個字符。讓我們看一些例子:
char grade = 'A';
char newline = '\n';
char smiley = '\u263A'; // Unicode 字符(C99 之後)
在這段代碼中:
-
'A'
是一個簡單的字符文字常數 -
'\n'
是一個特殊字符(換行) -
'\u263A'
是一個 Unicode 字符(一個微笑臉 ☺)
轉義序列
有時我們需要表示無法直接輸入的字符。這就是轉義序列派上用場的地方。它們總是以反斜杠(\)開頭。這裡是一張常見轉義序列的表格:
轉義序列 | 含義 |
---|---|
\n | 换行 |
\t | 制表符 |
\ | 反斜杠 |
\' | 单引号 |
\" | 双引号 |
\0 | 空字符 |
讓我們看看它們是如何工作的:
char newline = '\n';
char tab = '\t';
char backslash = '\\';
char single_quote = '\'';
char double_quote = '\"';
char null_char = '\0';
printf("Hello\tWorld!\nThis is a backslash: \\\nAnd a quote: \'");
這段代碼將輸出:
Hello World!
This is a backslash: \
And a quote: '
字符串文字常數
最後但同樣重要的是,讓我們來討論字符串文字常數。在 C 語言中,字符串文字常數是用雙引號括起的字符序列。這裡有一些例子:
char* greeting = "Hello, World!";
char* multiline = "This is a\n"
"multi-line\n"
"string literal.";
char* unicode = u8"This is a Unicode string: \u263A"; // C11 之後
在這段代碼中:
-
"Hello, World!"
是一個簡單的字符串文字常數 - 多行字符串展示了如何將長字符串跨行拆分
- Unicode 字符串演示了如何在字符串中包含 Unicode 字符
請記住,在 C 語言中,字符串文字常數實際上是字符數組,以空字符('\0')結尾。
結論
恭喜你!你剛剛通過學習文字常數,踏出了進入 C 程式設計世界的第一步。這些基本的建築塊將在你的程式設計旅程中至關重要。
記住,熟能生巧。嘗試使用這些不同類型的文字常數寫一些代碼。嘗試,犯錯,然後從中學習。這是成為一個熟練程式設計師的最佳方式。
快樂編程,直到下一次,繼續探索 C 世界的迷人之处!
Credits: Image by storyset