C语言面试之旅:掌握基础,探索深度(面试实战之c语言关键词下篇)

一.枚举( enum)

        枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。定义一个枚举类型,需要使用 enum 关键字,后面跟着枚举类型的名称,以及用大括号 {} 括起来的一组枚举常量。每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从 0 开始递增。

枚举语法定义格式为: enum 枚举名 {枚举元素1,枚举元素2,……};

例子:

enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
};

注解:

        第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。

二.共用体(union)

         共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。

        为了定义共用体,您必须使用 union 语句,方式与定义结构类似。union 语句定义了一个新的数据类型,带有多个成员。union 语句的格式如下:

union [union tag]
{
   member definition;
   member definition;
   ...
   member definition;
} [one or more union variables];

         union tag 是可选的,每个 member definition 是标准的变量定义,比如 int i; 或者 float f; 或者其他有效的变量定义。在共用体定义的末尾,最后一个分号之前,您可以指定一个或多个共用体变量,这是可选的。

例子:

union Data
{
   int i;
   float f;
   char  str[20];
} data;

 注解:

        Data 类型的变量可以存储一个整数、一个浮点数,或者一个字符串。这意味着一个变量(相同的内存位置)可以存储多个多种类型的数据。您可以根据需要在一个共用体内使用任何内置的或者用户自定义的数据类型。共用体占用的内存应足够存储共用体中最大的成员。例如,在上面的实例中,Data 将占用 20 个字节的内存空间,因为在各个成员中,字符串所占用的空间是最大的。

三.关键词集合(你都用了几个)

 

  1. int:表示整数类型。
  2. char:表示字符类型。
  3. float:表示单精度浮点数类型。
  4. double:表示双精度浮点数类型。
  5. void:表示无类型,常用于函数返回值。
  6. true:表示真值,布尔类型。
  7. false:表示假值,布尔类型。
  8. if:表示条件语句。
  9. else:表示条件语句的另一种选择。
  10. switch:表示开关语句。
  11. case:表示开关语句中的一种选择。
  12. break:表示跳出循环或开关语句。
  13. continue:表示跳过当前循环的剩余部分,继续下一个循环。
  14. while:表示循环语句。
  15. do-while:表示循环语句,至少执行一次,然后检查条件。
  16. for:表示循环语句,通常用于已知迭代次数的循环。
  17. goto:表示无条件跳转语句。
  18. sizeof:表示操作对象所占用的字节数。
  19. const:表示常量,即不可修改的值。
  20. static:表示静态变量或函数,即只在定义它的文件内有效。
  21. volatile:表示易变的变量,即可能会被外部因素改变。
  22. inline:表示内联函数,即将函数调用替换为函数体中的代码。
  23. extern:表示外部变量或函数,即在其他文件中定义,但在当前文件中声明。
  24. typedef:表示类型定义,用于创建新的类型名称。
  25. struct:表示结构体类型,用于组合不同类型的变量。
  26. union:表示联合体类型,用于共享内存的结构体。
  27. enum:表示枚举类型,用于创建枚举类型的名称和枚举常量。
  28. long:表示长整数类型。
  29. short:表示短整数类型。
  30. signed:表示有符号类型,即可以表示正数和负数。
  31. unsigned:表示无符号类型,即只能表示非负数。
  32. main:表示程序的入口函数。
  33. NULL:表示空指针,即没有指向任何对象的指针。
  34. true:表示真值,布尔类型。
  35. false:表示假值,布尔类型。
  36. sizeof:表示操作对象所占用的字节数。
  37. const:表示常量,即不可修改的值。
  38. static:表示静态变量或函数,即只在定义它的文件内有效。
  39. volatile:表示易变的变量,即可能会被外部因素改变。
  40. inline:表示内联函数,即将函数调用替换为函数体中的代码。
  41. extern:表示外部变量或函数,即在其他文件中定义,但在当前文件中声明。
  42. typedef:表示类型定义,用于创建新的类型名称。
  43. struct:表示结构体类型,用于组合不同类型的变量。
  44. union:表示联合体类型,用于共享内存的结构体。
  45. enum:表示枚举类型,用于创建枚举类型的名称和枚举常量。
  46. auto:表示自动变量,即由编译器自动分配内存空间的变量。
  47. register:表示寄存器变量,即存储在CPU寄存器中的变量,以提高访问速度。
  48. void:表示无类型,常用于函数返回值。
  49. const:表示只读变量,即变量的值不能被修改。
  50. inline:表示内联函数,即将函数调用替换为函数体中的代码,以提高执行效率。
  51. break:表示跳出循环或开关语句。
  52. case:表示开关语句中的一种选择。
  53. char:表示字符类型。
  54. default:表示开关语句中的默认选项。
  55. double:表示双精度浮点数类型。
  56. float:表示单精度浮点数类型。
  57. if:表示条件语句。
  58. int:表示整数类型。
  59. long:表示长整数类型。
  60. short:表示短整数类型。
  61. signed:表示有符号类型,即可以表示正数和负数。
  62. unsigned:表示无符号类型,即只能表示非负数。
  63. while:表示循环语句。
  64. do-while:表示循环语句,至少执行一次,然后检查条件。
  65. for:表示循环语句,通常用于已知迭代次数的循环。
  66. continue:表示跳过当前循环的剩余部分,继续下一个循环。
  67. goto:表示无条件跳转语句。
  68. sizeof:表示操作对象所占用的字节数。
  69. static:表示静态变量或函数,即只在定义它的文件内有效。
  70. volatile:表示易变的变量,即可能会被外部因素改变。
  71. extern:表示外部变量或函数,即在其他文件中定义,但在当前文件中声明。
  72. typedef:表示类型定义,用于创建新的类型名称。
  73. struct:表示结构体类型,用于组合不同类型的变量。
  74. union:表示联合体类型,用于共享内存的结构体。
  75. enum:表示枚举类型,用于创建枚举类型的名称和枚举常量。
  76. long double:表示双精度浮点数类型,精度高于double类型。
  77. unsigned long:表示无符号长整数类型。
  78. signed long:表示有符号长整数类型。
  79. unsigned short:表示无符号短整数类型。
  80. signed short:表示有符号短整数类型。
  81. wchar_t:表示宽字符类型,用于存储Unicode字符。
  82. bool:表示布尔类型,可以表示真或假。
  83. true:表示真值,布尔类型。
  84. false:表示假值,布尔类型。
  85. thread_local:表示线程局部变量,即每个线程都有该变量的独立副本。
  86. alignas:表示指定变量或类型的对齐方式。
  87. alignof:表示操作对象所需的最小对齐字节数。
  88. noexcept:表示函数不抛出异常。
  89. synchronized:表示对象在多线程环境中是线程安全的。
  90. inline:表示内联函数,即将函数调用替换为函数体中的代码,以提高执行效率。
  91. noexcept(true):表示函数不会抛出异常,如果抛出异常,则程序将终止。
  92. noexcept(false):表示函数可能会抛出异常,调用者需要处理异常。
  93. thread_local_storage:表示线程局部存储区,即每个线程都有该变量的独立副本。
  94. atomic:表示原子类型,用于多线程并发访问时的同步操作。
  95. mutable:表示变量可以在const上下文中被修改。
  96. thread_safe:表示对象在多线程环境下是安全的。
  97. noexcept2:表示函数不抛出异常,并且不执行任何动态分配内存的操作。
  98. thread_local_init:表示线程局部变量的初始化。
  99. constexpr:表示编译时常量,即在编译时计算结果。
  100. alignof(max):表示操作对象所需的最小对齐字节数,最大值取决于实现。
  101. noexcept(throw):表示函数不会抛出异常,如果抛出异常,则程序将终止,并立即抛出异常。
  102. noreturn:表示函数不会返回,通常用于标记终止程序的函数。
  103. export:表示函数或变量可以被其他模块访问。
  104. import:表示引入其他模块的函数或变量。
  105. macro:表示宏定义,用于替换代码片段。
  106. define:表示定义宏,用于替换代码片段。
  107. typedef:表示类型定义,用于创建新的类型名称。
  108. using:表示使用命名空间中的名称。
  109. namespace:表示命名空间,用于组织代码。
  110. class:表示类定义,用于定义对象的结构和行为。

你可能感兴趣的:(c语言,开发语言,面试)