C语言中的关键字

C语言中的关键字是具有特定含义的保留字,不能用作变量名、函数名等标识符。C标准(C99)定义了32个关键字,按功能可分为以下几类:

一、数据类型关键字(12个)

用于声明变量、函数或其他数据结构的类型。

  1. 基本类型

    • int:声明整数类型变量

      c 复制代码
      int age = 20; // 定义整数变量age
    • char:声明字符类型变量

      c 复制代码
      char ch = 'A'; // 定义字符变量ch
    • float:声明单精度浮点型变量

      c 复制代码
      float pi = 3.14f; // 定义单精度浮点数
    • double:声明双精度浮点型变量

      c 复制代码
      double price = 99.99; // 定义双精度浮点数
    • void:表示无类型(用于函数返回值或空指针)

      c 复制代码
      void printHello() { // 无返回值函数
          printf("Hello");
      }
  2. 类型修饰符

    • short:修饰int,表示短整数

      c 复制代码
      short int num = 100; // 等价于 short num = 100;
    • long:修饰int或double,延长数据长度

      c 复制代码
      long int bigNum = 123456789; // 长整数
      long double precise = 3.1415926535;
    • signed:表示有符号类型(可省略,默认)

      c 复制代码
      signed int temp = -5; // 可存储负数
    • unsigned:表示无符号类型(只能存储非负数)

      c 复制代码
      unsigned int count = 10; // 只能存储0及正数
  3. 复杂类型

    • struct:声明结构体类型

      c 复制代码
      struct Student { // 定义学生结构体
          char name[20];
          int id;
      };
      struct Student s1 = {"Tom", 1001};
    • union:声明共用体类型(所有成员共享内存)

      c 复制代码
      union Data {
          int i;
          float f;
      };
      union Data d;
      d.i = 10; // 存储整数
      d.f = 3.14f; // 覆盖之前的整数存储
    • enum:声明枚举类型

      c 复制代码
      enum Week {MON, TUE, WED}; // 枚举常量默认值0,1,2
      enum Week today = TUE; // today的值为1

二、控制语句关键字(12个)

用于程序流程控制。

  1. 分支结构

    • if:条件判断

      c 复制代码
      if (score > 60) {
          printf("Pass");
      }
    • else:与if搭配,处理相反条件

      c 复制代码
      if (a > b) max = a;
      else max = b;
    • switch:多分支选择

      c 复制代码
      switch (grade) {
          case 'A': printf("Excellent"); break;
          case 'B': printf("Good"); break;
          default: printf("Other");
      }
    • case:switch中的分支标记

    • default:switch中默认分支

  2. 循环结构

    • for:循环控制

      c 复制代码
      for (int i=0; i<5; i++) { // 循环5次
          printf("%d ", i);
      }
    • while:当条件为真时循环

      c 复制代码
      int i=0;
      while (i<5) {
          printf("%d ", i++);
      }
    • do:与while搭配,先执行后判断

      c 复制代码
      int i=0;
      do {
          printf("%d ", i++);
      } while (i<5);
  3. 跳转语句

    • break:跳出当前循环或switch

      c 复制代码
      for (int i=0; i<10; i++) {
          if (i == 5) break; // 当i=5时跳出循环
      }
    • continue:跳过本次循环剩余部分

      c 复制代码
      for (int i=0; i<10; i++) {
          if (i%2 == 0) continue; // 跳过偶数
          printf("%d ", i);
      }
    • goto:无条件跳转(不推荐频繁使用)

      c 复制代码
      if (error) {
          goto error_handler; // 跳转到标记位置
      }
      error_handler:
          printf("Error occurred");
    • return:函数返回

      c 复制代码
      int add(int a, int b) {
          return a + b; // 返回计算结果
      }

三、存储类关键字(5个)

用于说明变量的存储方式和作用域。

  • auto:自动变量(默认,一般省略)

    c 复制代码
    auto int x = 5; // 等价于 int x = 5;
  • static:静态变量(保持值不随函数调用重置)

    c 复制代码
    void count() {
        static int c = 0; // 只初始化一次,下次调用保留值
        printf("%d ", ++c);
    }
  • register:寄存器变量(建议编译器存储在寄存器中,加快访问)

    c 复制代码
    register int i; // 常用于循环变量
  • extern:声明外部变量(在其他文件中定义)

    c 复制代码
    extern int globalVar; // 声明全局变量,在其他文件定义
  • const:声明常量(值不能修改)

    c 复制代码
    const int MAX = 100; // MAX的值不能被修改

四、其他关键字(3个)

  • sizeof:计算数据类型或变量的大小(字节数)

    c 复制代码
    int size = sizeof(int); // size等于4(多数系统中)
  • typedef:为数据类型定义别名

    c 复制代码
    typedef int Integer; // 用Integer代替int
    Integer num = 10;
  • volatile:提示编译器变量值可能被意外修改(防止优化)

    c 复制代码
    volatile int flag; // 告知编译器flag可能被外部修改

注意事项

  1. 关键字全部为小写,大写字母组成的标识符(如INT)不是关键字。
  2. C11标准新增了_Alignas_Atomic等关键字(带下划线前缀),属于扩展关键字。
  3. 不能将关键字用作变量名、函数名等,否则会导致编译错误。
相关推荐
怀旧,11 小时前
【C++】17. AVL树实现
java·开发语言·c++
画个逗号给明天"11 小时前
C/C++关键字——union
c语言·开发语言·c++
乌萨奇也要立志学C++11 小时前
【C++详解】C++11(四) 包装器:function、bind、STL中⼀些变化
开发语言·c++
乌萨奇也要立志学C++12 小时前
【C++详解】异常概念、抛出捕获与处理机制全解析
开发语言·c++
DS数模12 小时前
2025国赛B题保姆级教程思路分析 碳化硅外延层厚度的确定
开发语言·数学建模·2025数学建模·2025数学建模国赛·2025国赛·2025高教社杯数学建模·2025国赛b题
数维学长98612 小时前
【全网最全】《2025国赛/高教杯》C题 思路+代码python和matlab+文献 一到四问 退火算法+遗传算法 NIPT的时点选择与胎儿的异常判定
开发语言·算法·matlab
XXYBMOOO12 小时前
使用Qt Charts实现高效多系列数据可视化
开发语言·qt·ui·信息可视化
Pocker_Spades_A12 小时前
Python快速入门专业版(三):print 格式化输出:% 占位符、format 方法与 f-string(谁更高效?)
开发语言·python
nightunderblackcat12 小时前
新手向:AI IDE+AI 辅助编程
开发语言·python·microsoft·信息可视化