C语言中的关键字是具有特定含义的保留字,不能用作变量名、函数名等标识符。C标准(C99)定义了32个关键字,按功能可分为以下几类:
一、数据类型关键字(12个)
用于声明变量、函数或其他数据结构的类型。
基本类型
int
:声明整数类型变量int age = 20; // 定义整数变量age
char
:声明字符类型变量char ch = 'A'; // 定义字符变量ch
float
:声明单精度浮点型变量float pi = 3.14f; // 定义单精度浮点数
double
:声明双精度浮点型变量double price = 99.99; // 定义双精度浮点数
void
:表示无类型(用于函数返回值或空指针)void printHello() { // 无返回值函数 printf("Hello"); }
类型修饰符
short
:修饰int,表示短整数short int num = 100; // 等价于 short num = 100;
long
:修饰int或double,延长数据长度long int bigNum = 123456789; // 长整数 long double precise = 3.1415926535;
signed
:表示有符号类型(可省略,默认)signed int temp = -5; // 可存储负数
unsigned
:表示无符号类型(只能存储非负数)unsigned int count = 10; // 只能存储0及正数
复杂类型
struct
:声明结构体类型struct Student { // 定义学生结构体 char name[20]; int id; }; struct Student s1 = {"Tom", 1001};
union
:声明共用体类型(所有成员共享内存)union Data { int i; float f; }; union Data d; d.i = 10; // 存储整数 d.f = 3.14f; // 覆盖之前的整数存储
enum
:声明枚举类型enum Week {MON, TUE, WED}; // 枚举常量默认值0,1,2 enum Week today = TUE; // today的值为1
二、控制语句关键字(12个)
用于程序流程控制。
分支结构
if
:条件判断if (score > 60) { printf("Pass"); }
else
:与if搭配,处理相反条件if (a > b) max = a; else max = b;
switch
:多分支选择switch (grade) { case 'A': printf("Excellent"); break; case 'B': printf("Good"); break; default: printf("Other"); }
case
:switch中的分支标记default
:switch中默认分支
循环结构
for
:循环控制for (int i=0; i<5; i++) { // 循环5次 printf("%d ", i); }
while
:当条件为真时循环int i=0; while (i<5) { printf("%d ", i++); }
do
:与while搭配,先执行后判断int i=0; do { printf("%d ", i++); } while (i<5);
跳转语句
break
:跳出当前循环或switchfor (int i=0; i<10; i++) { if (i == 5) break; // 当i=5时跳出循环 }
continue
:跳过本次循环剩余部分for (int i=0; i<10; i++) { if (i%2 == 0) continue; // 跳过偶数 printf("%d ", i); }
goto
:无条件跳转(不推荐频繁使用)if (error) { goto error_handler; // 跳转到标记位置 } error_handler: printf("Error occurred");
return
:函数返回int add(int a, int b) { return a + b; // 返回计算结果 }
三、存储类关键字(5个)
用于说明变量的存储方式和作用域。
auto
:自动变量(默认,一般省略)auto int x = 5; // 等价于 int x = 5;
static
:静态变量(保持值不随函数调用重置)void count() { static int c = 0; // 只初始化一次,下次调用保留值 printf("%d ", ++c); }
register
:寄存器变量(建议编译器存储在寄存器中,加快访问)register int i; // 常用于循环变量
extern
:声明外部变量(在其他文件中定义)extern int globalVar; // 声明全局变量,在其他文件定义
const
:声明常量(值不能修改)const int MAX = 100; // MAX的值不能被修改
四、其他关键字(3个)
sizeof
:计算数据类型或变量的大小(字节数)int size = sizeof(int); // size等于4(多数系统中)
typedef
:为数据类型定义别名typedef int Integer; // 用Integer代替int Integer num = 10;
volatile
:提示编译器变量值可能被意外修改(防止优化)volatile int flag; // 告知编译器flag可能被外部修改
注意事项
- 关键字全部为小写,大写字母组成的标识符(如
INT
)不是关键字。 - C11标准新增了
_Alignas
、_Atomic
等关键字(带下划线前缀),属于扩展关键字。 - 不能将关键字用作变量名、函数名等,否则会导致编译错误。