C - 文字常數:初學者指南

你好,未來的程式設計師們!今天,我們將踏上一段令人興奮的旅程,進入 C 程式設計的世界,特別聚焦於文字常數。別擔心如果你從未寫過程式碼——我將成為你的友好導遊,我們會一步步來。在這個教學結束時,你會驚訝於你所學到的知識!

C - Literals

文字常數是什麼?

在我們深入之前,讓我們先了解文字常數是什麼。在程式設計中,文字常數是直接出現在程式碼中的固定值。它們就像是程式設計世界的常數——不變且可靠。把它們當作是你程序的建築塊。

現在,讓我們探討 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