C 语言词法单元

2025年6月14日 | 阅读 9 分钟

在 C 语言中,Token 是构成 C 程序的最重要元素。我们可以将 Token 定义为 C 中最小的独立元素。例如,我们无法在不使用单词的情况下写出句子;类似地,在不使用 Token 的情况下,我们也无法在 C 中创建程序。因此,我们可以说 C 中的 Token 是构建 C 语言程序的基石或基本组成部分。

C Token 的分类

C 语言中的 Token 可以分为以下几类:

Tokens in C
  • C 语言关键字
  • C 语言标识符
  • C 语言字符串
  • C 语言运算符
  • C 语言常量
  • C 语言特殊字符

让我们逐一了解每个 Token。

C 语言关键字

C 语言中的关键字可以定义为预定义的保留的单词,它们具有自身的含义,并且每个关键字都有自己的功能。由于关键字是编译器使用的预定义单词,因此不能将其用作变量名。如果将关键字用作变量名,则意味着我们为关键字赋予了不同的含义,这是不允许的。C 语言支持 32 个关键字,如下所示:

autodoubleintstruct
breakelselongswitch
caseenumregistertypedef
charexternreturnunion
constfloatshortunsigned
continueforsignedvoid
defaultgotosizeofvolatile
doifstaticwhile

C 关键字示例

让我们举一个例子来说明 C 语言中的关键字。

示例

编译并运行

输出

The value of the variable is: 10

说明

在这个示例中,我们初始化了一个名为 x 的变量,该变量保存一个整数值 10。我们使用 int 关键字来保存整数值,它能够容纳整数值。因此,我们为此使用了 'int' 关键字,并使用 printf 语句打印了 x 的值。类似地,我们可以使用合适的关键字与变量一起保存十进制值和字符。

C 语言标识符

C 语言中的标识符用于为变量、函数、数组、结构等命名。C 语言中的标识符是用户定义的单词。它可以由大写字母、小写字母、下划线或数字组成,但首字母必须是下划线或字母。标识符不能用作关键字。构造 C 语言标识符的规则如下:

  • 标识符的第一个字符必须是字母或下划线,之后可以跟任何字符、数字或下划线。
  • 它不能以数字开头。
  • 在标识符中,大写字母和小写字母是不同的。因此,我们可以说标识符是区分大小写的。
  • 标识符中不能包含逗号或空格。
  • 关键字不能被表示为标识符。
  • 标识符的长度不应超过 31 个字符。
  • 标识符的编写应使其有意义、简短且易于阅读。

C 标识符示例

让我们举一个例子来说明 C 语言中的标识符。

示例

编译并运行

输出

After addition, the sum of the values is: 30 

说明

在这个示例中,我们初始化了三个变量,其中前两个变量 'a' 和 'b' 保存整数值,第三个变量 sum 将保存结果,该结果应为整数值。因此,为了对两个数字进行加法运算,我们使用 'a' 和 'b' 来标识它们,它们也被称为标识符,而 'sum' 是另一个标识符,用于保存 a 和 b 的加法结果值。

C 语言字符串

C 语言中的字符串始终表示为字符数组,并在字符串末尾带有一个空字符 '\0'。这个空字符表示字符串的结束。在 C 语言中,字符串用双引号括起来,而字符用单引号括起来。字符串的大小是字符串包含的字符数。

现在,我们以不同的方式描述字符串:

C 字符串示例

让我们举一个例子来说明 C 语言中的字符串。

示例

编译并运行

输出

TPOINTTECH IS THE BEST TUTORIAL WEBSITE  
The length of the string is: 41

说明

在这个示例中,我们创建了一个长度为 50 的字符数组,它保存了一个字符串值。接下来,我们打印了字符串,为此我们使用了 '%s' 来指向字符串输入。之后,我们计算了输入字符串的长度,为此我们使用了预定义的字符串函数 strlen() 并打印了结果。

C 语言运算符

C 语言中的运算符是用于执行功能的特殊符号。运算符所作用的数据项称为操作数。运算符应用于操作数之间。根据操作数的数量,运算符分为以下几类:

一元运算符

一元运算符是应用于单个操作数的运算符。例如:自增运算符(++),自减运算符(--),sizeof,(type)*。

二元运算符

二元运算符是应用于两个操作数之间的运算符。以下是二元运算符的列表:

  • 算术运算符
  • 关系运算符
  • 移位运算符
  • 逻辑运算符
  • 按位运算符
  • 条件运算符
  • 赋值运算符
  • 杂项运算符

C 运算符示例

让我们举一个例子来说明 C 语言中的运算符。

示例

编译并运行

输出

The sum of given values a and b is: 32 
The difference of given values a and b is: 16 
The product of given values a and b is: 192 
The divison of given values a and b is: 3 
The value of a and b are 0 
The value of a and b are equal ? 1

说明

在这个示例中,我们演示了 C 语言中基本算术运算符和关系运算符的用法。它对两个整数(a = 24,b = 8)执行加法、减法、乘法和除法,并使用 printf() 显示结果。它还使用关系运算符检查两个值之间的相等性(==)和不等性(!=),并打印相应的布尔结果(0 表示假,1 表示真)。

C 语言常量

在 C 语言中,常量是分配给变量的值,该值在整个程序中将保持不变,即常量值不能被更改。

声明常量有两种方法:

  • 使用 const 关键字
  • 使用 #define 预处理器

C 语言常量类型

Constant示例
整数常量例如:10, 11, 34 等。
浮点常量例如:45.6, 67.8, 11.2 等。
八进制常量例如:011, 088, 022 等。
十六进制常量例如:0x1a, 0x4b, 0x6b 等。
字符常量例如:'a', 'b', 'c' 等。
字符串常量例如:"java", "c++", ".net" 等。

C 常量示例

让我们举一个例子来说明 C 语言中的常量。

示例

编译并运行

输出

The output is : 5

说明

在这个示例中,我们演示了使用 const 关键字的常量变量的用法。x 的值固定为 5,并通过 printf() 打印,这确保了在程序的后续部分无法修改它。

C 语言特殊字符

C 语言中使用了一些特殊字符,它们具有特殊含义,不能用于其他目的。

  • 方括号 [ ]:开闭括号表示一维和多维下标。
  • 圆括号 ( ):在函数声明和函数调用中使用。例如,printf() 是一个预定义函数。
  • 花括号 { }:用于代码的开始和结束。用于循环的开始和结束。
  • 逗号 (,):用于分隔多个语句,例如,分隔函数调用中的函数参数,在同一个 printf 语句中打印多个变量的值时分隔变量。
  • 井号/预处理器 (#):用于预处理器指令。它基本上表示我们正在使用头文件。
  • 星号 (*):此符号用于表示指针,也用作乘法运算符。
  • 波浪号 (~):用作析构函数来释放内存。
  • 句点 (.):用于访问结构或联合的成员。

C 特殊字符示例

让我们举一个例子来说明 C 语言中的特殊字符。

示例

编译并运行

输出

The output is: TpointTech is the best tutorial site

说明

在这个示例中,我们初始化了一个字符数组 (ch[]) 并带有一个字符串,然后使用 printf() 中的 %s 格式说明符打印它。

C Token 选择题

1) 从以下选项中识别一个无效的 C Token。

  1. 标识符
  2. 常量
  3. 注释
  4. 关键字
 

答案:c) Comments (注释)


2) 识别 C 标识符的最大长度。

  1. 1024 个字符
  2. 无限制
  3. 63 个字符
  4. 31 个字符
 

答案:c) 63 个字符


3) 识别 C 语言中的正确关键字。

  1. return
  2. define
  3. 功能
  4. variable (变量)
 

答案:a) return (返回)


4) 识别在 C 语言中使用 Token 的目的。

  1. 提供注释
  2. 管理内存分配
  3. 表示最小的独立单元
  4. 定义程序的结构
 

答案:c) 表示最小的独立单元


5) 以下哪个选项不是 C 语言中正确的常量类型?

  1. 字符串常量
  2. 整数常量
  3. 浮点常量
  4. 布尔常量
 

答案:d) 布尔常量


下一个主题C Boolean