术语表
读代码、看报错时反复出现的词。
| 术语 | 英文 | 解释 |
|---|---|---|
| 编译 | compile | 把 .c 源码翻译成机器能执行的文件(如 a.out / exe)。 |
| 预处理 | preprocess | 编译前的文本处理:#include 展开、#define 替换、#ifdef 裁剪。 |
| 标识符 | identifier | 变量名、函数名等合法名字;不能数字开头,不能用关键字。 |
| 关键字 | keyword | 语言保留字,如 int、if、for、return,不能当变量名。 |
| 字面量 | literal | 写死的值:10、3.14f、'A'、"hi"。 |
| 整数除法 | integer division | 两边都是整数时 / 只保留整数部分,7/2 得 3。 |
| 短路求值 | short-circuit | A&&B 中 A 假则不算 B;可用来先判合法再解引用。 |
| 作用域 | scope | 名字有效的范围。函数内变量出了大括号就不存在。 |
| 栈 | stack | 函数调用与局部变量所在的内存区;返回后自动回收。 |
| 传值 | pass by value | 函数参数得到的是副本,改形参不影响实参。 |
| 传址 | pass by address | 把 &x 交给指针参数,函数可改到调用方的变量。 |
| 解引用 | dereference | *p 取出 p 指向的那格内容。 |
| 空指针 | NULL pointer | 不指向任何对象的指针;解引用会崩溃。 |
| 越界 | out of bounds | 访问 a[n] 或更后,未定义行为,极难调试。 |
| 未定义行为 | UB | 语言不保证结果:可能碰巧能跑,也可能崩溃。 |
| 字符串终止符 | NUL / \0 | C 字符串以 \0 结束;strlen 数到它为止。 |
| 头文件卫士 | include guard | #ifndef/#define/#endif,防止重复包含。 |
| 结构体 | struct | 把多个相关字段打包成一个自定义类型。 |
| typedef | typedef | 给已有类型起短名,如 typedef struct {...} Point; |
| 宏 | macro | #define 的文本替换;无类型检查,复杂逻辑更推荐函数。 |
| 随机存取 | random access | 数组用下标直接跳到第 i 个,不必从头扫。 |
| 线性查找 | linear search | 从头到尾一个个比,O(n)。 |
| 冒泡排序 | bubble sort | 相邻比较交换,把大数往后推;O(n²)。 |
| 素数 | prime | 大于 1、只能被 1 和自身整除的整数。 |
| 文件指针 | FILE* | fopen 返回的句柄;为 NULL 表示打开失败。 |