C - 字面量:初学者指南

你好,未来的程序员们!今天,我们将踏上一段激动人心的旅程,探索C编程世界的奥秘,特别是关注字面量。如果你之前从未编写过代码,不用担心——我会成为你的友好向导,我们会一步步地学习。在本教程结束时,你将会惊讶于你已经学到了多少!

C - Literals

字面量是什么?

在我们深入之前,让我们先了解一下字面量是什么。在编程中,字面量是直接出现在代码中的固定值。它们就像是编程世界的常数——不变且可靠。你可以把它们看作是你程序的构建块。

现在,让我们探索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起)

这些后缀帮助编译器确切地理解我们在处理哪种类型的整数。

C语言中的浮点字面量

现在,让我们进入小数的世界!浮点字面量是带有小数点的数字。这里有一些例子:

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后缀)

记住,浮点字面量默认是双精度。如果你想要一个float,你可以使用F后缀:

float f = 3.14F;

C语言中的字符字面量

C语言中的字符字面量是用单引号括起来的单个字符。它们代表一个字符。让我们看一些例子:

char grade = 'A';
char newline = '\n';
char smiley = '\u263A';  // Unicode字符(C99起)

在这段代码中:

  • 'A' 是一个简单的字符字面量
  • '\n' 是一个特殊字符(换行)
  • '\u263A' 是一个Unicode字符(一个笑脸符号 ☺)

C语言中的转义序列

有时我们需要表示无法直接键入的字符。这时,转义序列就派上用场了。它们总是以反斜杠(\)开头。下面是常见转义序列的表格:

转义序列 含义
\n 换行
\t 制表符
\ 反斜杠
\' 单引号
\" 双引号
\0 空字符

让我们看看它们的实际应用:

char newline = '\n';
char tab = '\t';
char backslash = '\\';
char single_quote = '\'';
char double_quote = '\"';
char null_char = '\0';

printf("Hello\tWorld!\n这是反斜杠: \\\n以及引号: \'");

这段代码将输出:

Hello   World!
这是反斜杠: \
以及引号: '

C语言中的字符串字面量

最后但同样重要的是,让我们来谈谈字符串字面量。在C语言中,字符串字面量是括在双引号中的字符序列。这里有一些例子:

char* greeting = "Hello, World!";
char* multiline = "这是一个\n"
"多行\n"
"字符串字面量。";
char* unicode = u8"这是一个Unicode字符串: \u263A";  // C11起

在这段代码中:

  • "Hello, World!" 是一个简单的字符串字面量
  • 多行字符串展示了我们如何可以在多行中拆分长字符串
  • Unicode字符串演示了如何在字符串中包含Unicode字符

记住,在C语言中,字符串字面量实际上是字符数组,以空字符('\0')结尾。

结论

恭喜你!你刚刚迈出了进入C编程世界的第一步,学习了关于字面量的知识。这些基本的构建块在你继续编程旅程时将至关重要。

记住,熟能生巧。尝试编写一些使用这些不同类型字面量的代码。进行实验,犯错,并从中学习。这是成为熟练程序员的最佳方式。

快乐编程,下次见,继续探索C语言这个迷人的世界!

Credits: Image by storyset