C语言的32个关键字
关键字是C语言中预先定义好的、具有特殊含义的单词,用户不能用作变量名、函数名或其他自定义标识符,C89标准(也称为ANSI C)定义了32个关键字。

(图片来源网络,侵删)
以下是这32个关键字的列表、分类及简要说明:
数据类型关键字 (12个)
这些关键字用于声明变量、函数返回值或函数参数的类型。
| 关键字 | 说明 |
|---|---|
char |
字符型数据,占用1个字节。 |
short |
短整型,通常占用2个字节。 |
int |
整型,通常占用4个字节。 |
long |
长整型,通常占用4或8个字节。 |
float |
单精度浮点型(单精度实型),占用4个字节。 |
double |
双精度浮点型(双精度实型),占用8个字节。 |
signed |
有符号类型,可以表示正数、负数和零。 |
unsigned |
无符号类型,只能表示非负数(0和正数)。 |
void |
空类型,通常用于函数不返回值或无参数。 |
_Bool |
布尔类型,存储 true (1) 或 false (0)。(C99新增) |
_Complex |
复数类型。(C99新增) |
_Imaginary |
虚数类型。(C99新增) |
注意:
_Bool,_Complex,_Imaginary是C99标准引入的,为了不与现有代码冲突,使用了下划线前缀。
存储类别关键字 (5个)
这些关键字定义了变量或函数的存储方式和生命周期。

(图片来源网络,侵删)
| 关键字 | 说明 |
|---|---|
auto |
自动变量,默认的存储类别,通常在函数内部定义的局部变量。 |
static |
静态变量,其生命周期贯穿整个程序运行期间。 |
register |
寄存器变量,建议编译器将变量存储在寄存器中以提高访问速度。 |
extern |
外部变量/函数,声明一个变量或函数是在其他文件中定义的。 |
typedef |
类型定义,用于为已有的数据类型创建一个新的别名。 |
流程控制关键字 (12个)
这些关键字用于控制程序的执行流程。
| 关键字 | 说明 |
|---|---|
if |
条件语句,如果条件为真,则执行其后的代码块。 |
else |
条件语句,与 if 配对,如果条件为假,则执行其后的代码块。 |
switch |
开关语句,根据表达式的值跳转到不同的 case 分支。 |
case |
switch 语句中的一个分支。 |
default |
switch 语句中,所有 case 都不匹配时的默认分支。 |
while |
当型循环,当条件为真时,重复执行循环体。 |
do |
直到型循环,先执行一次循环体,然后判断条件。 |
for |
循环语句,通常用于已知循环次数的情况。 |
break |
跳出当前循环或 switch 语句。 |
continue |
结束本次循环,直接进入下一次循环条件的判断。 |
goto |
无条件跳转语句,跳转到程序中指定的标签处。 |
return |
从函数中返回,并可以带回一个返回值。 |
其他关键字 (3个)
这些关键字具有特殊用途。
| 关键字 | 说明 |
|---|---|
sizeof |
一个运算符,用于返回一个变量或数据类型所占的字节数。 |
const |
常量限定符,声明一个变量的值不能被修改。 |
volatile |
易失性限定符,告诉编译器该变量的值可能被硬件或未知因素改变,不要进行优化。 |
C语言的9种控制语句
控制语句是程序的核心,它们决定了代码的执行顺序和逻辑路径,这9种控制语句可以分为三大类:选择语句、循环语句和跳转语句。
选择语句 (3种)
选择语句用于根据不同的条件执行不同的代码块。

(图片来源网络,侵删)
| 语句 | 说明 | 示例 |
|---|---|---|
if |
如果条件为真,则执行一个代码块。 | if (age > 18) { printf("Adult"); } |
if...else |
如果条件为真,执行一个代码块;否则,执行另一个代码块。 | if (score >= 60) { printf("Pass"); } else { printf("Fail"); } |
switch |
根据一个变量的值,在多个 case 分支中选择一个来执行。 |
switch (grade) { case 'A': ...; break; ... } |
循环语句 (3种)
循环语句用于重复执行一段代码,直到某个条件不再满足。
| 语句 | 说明 | 示例 |
|---|---|---|
while |
当条件为真时,重复执行循环体,先判断,后执行。 | int i = 0; while (i < 10) { i++; } |
do...while |
先执行一次循环体,然后判断条件,如果条件为真,则继续循环,至少执行一次。 | int i = 0; do { i++; } while (i < 10); |
for |
通常用于循环次数已知的情况,包含初始化、条件判断和循环后操作三部分。 | for (int i = 0; i < 10; i++) { ... } |
跳转语句 (3种)
跳转语句用于改变程序的正常执行流程,实现非线性的跳转。
| 语句 | 说明 | 示例 |
|---|---|---|
break |
立即终止并跳出当前所在的 switch 语句或循环(for, while, do...while)。 |
for (int i = 0; i < 100; i++) { if (i == 5) break; } |
continue |
立即结束本次循环,并跳转到循环条件的判断处,开始下一次循环。 | for (int i = 0; i < 10; i++) { if (i % 2 == 0) continue; printf("%d", i); } |
goto |
无条件地跳转到程序中由标签(label)指定的位置。强烈建议避免使用,因为它会使代码逻辑混乱,难以维护。 | error: printf("An error occurred!"); goto error; |
| 类别 | 关键字 (12个) | 控制语句 (3种) |
|---|---|---|
| 数据类型 | char, short, int, long, float, double, signed, unsigned, void, _Bool, _Complex, _Imaginary |
|
| 存储类别 | auto, static, register, extern, typedef |
|
| 流程控制 | if, else, switch, case, default, while, do, for, break, continue, goto, return |
选择: if, if...else, switch循环: while, do...while, for跳转: break, continue, goto |
| 其他 | sizeof, const, volatile |
掌握这32个关键字和9种控制语句是学习C语言的基础,它们构成了C语言程序逻辑的骨架。
