C参考手册

这是一份速查手册,不用从头读到尾——需要时翻一翻就行。

关键字速查

C89 关键字(32个)

关键字 说明
auto 自动存储期(默认)
break 跳出循环或switch
case switch分支标签
char 字符类型
const 常量修饰符
continue 跳到循环下一次迭代
default switch默认分支
do do-while循环
double 双精度浮点
else if-else的else分支
enum 枚举类型
extern 外部链接声明
float 单精度浮点
for for循环
goto 无条件跳转
if 条件判断
int 整型
long 长整型修饰符
register 寄存器存储建议
return 函数返回
short 短整型修饰符
signed 有符号修饰符
sizeof 获取类型或变量大小
static 静态存储期或内部链接
struct 结构体
switch 多分支选择
typedef 类型别名
union 联合体
unsigned 无符号修饰符
void 空类型
volatile 防止优化修饰符
while while循环

C99 新增关键字(5个)

关键字 说明
_Bool 布尔类型(通常用 bool 宏)
_Complex 复数类型
_Imaginary 虚数类型
inline 内联函数建议
restrict 指针别名限制

C11 新增关键字(7个)

关键字 说明
_Alignas 对齐指定
_Alignof 获取对齐要求
_Atomic 原子类型
_Generic 泛型选择
_Noreturn 函数不返回
_Static_assert 静态断言
_Thread_local 线程局部存储

格式说明符速查

printf 格式说明符

说明符 输出类型 示例
%d / %i 有符号十进制整数 printf("%d", 42) → 42
%u 无符号十进制整数 printf("%u", 42U) → 42
%o 无符号八进制 printf("%o", 8) → 10
%x 无符号十六进制(小写) printf("%x", 255) → ff
%X 无符号十六进制(大写) printf("%X", 255) → FF
%f 十进制浮点 printf("%f", 3.14) → 3.140000
%e 科学计数法(小写e) printf("%e", 0.001) → 1.000000e-03
%E 科学计数法(大写E) printf("%E", 0.001) → 1.000000E-03
%g 自动选择%f或%e printf("%g", 0.0001) → 0.0001
%c 字符 printf("%c", 'A') → A
%s 字符串 printf("%s", "hi") → hi
%p 指针地址 printf("%p", ptr) → 0x7ffd...
%ld long printf("%ld", 100000L)
%lld long long printf("%lld", 1LL<<40)
%zu size_t printf("%zu", sizeof(int))
%% 百分号本身 printf("100%%") → 100%

printf 修饰符

修饰符 含义 示例
%- 左对齐 "%-10s"
%0 用0填充 "%05d" → 00042
%m 最小字段宽度 "%10d"
%.n 精度 "%.2f" → 3.14

scanf 格式说明符

说明符 读取类型
%d int
%u unsigned int
%ld long
%f float
%lf double
%c 字符
%s 字符串(遇空白停止)
%[...] 扫描集
%*d 读取但丢弃

转义字符表

转义序列 含义 ASCII值
\a 响铃 7
\b 退格 8
\f 换页 12
\n 换行 10
\r 回车 13
\t 水平制表 9
\v 垂直制表 11
\\ 反斜杠 92
\' 单引号 39
\" 双引号 34
\0 空字符 0
\ooo 八进制值
\xhh 十六进制值

运算符优先级表

从高到低排列,同一行的运算符优先级相同:

优先级 运算符 结合性 说明
1 () [] -> . ++(后) --(后) 左→右 后缀
2 ++(前) --(前) + - ! ~ *(解引用) &(取地址) sizeof (type) 右→左 单目
3 * / % 左→右 乘除
4 + - 左→右 加减
5 << >> 左→右 移位
6 < <= > >= 左→右 关系
7 == != 左→右 相等
8 & 左→右 按位与
9 ^ 左→右 按位异或
10 | 左→右 按位或
11 && 左→右 逻辑与
12 || 左→右 逻辑或
13 ?: 右→左 条件
14 = += -= *= /= %= &= ^= |= <<= >>= 右→左 赋值
15 , 左→右 逗号
💡 记忆口诀:单目→乘除→加减→移位→关系→相等→位与→异或→位或→逻辑与→逻辑或→条件→赋值→逗号

常用头文件函数速查

stdio.h

函数 功能
printf 格式化输出到stdout
fprintf 格式化输出到文件
sprintf 格式化输出到字符串
snprintf 格式化输出到字符串(安全)
scanf 从stdin格式化读取
fscanf 从文件格式化读取
sscanf 从字符串格式化读取
fopen 打开文件
fclose 关闭文件
fgetc 读取一个字符
fputc 写入一个字符
fgets 读取一行
fputs 写入字符串
fread 二进制读取
fwrite 二进制写入
fseek 设置文件位置
ftell 获取文件位置
rewind 重置文件位置到开头
feof 检测文件末尾
ferror 检测文件错误
fflush 刷新缓冲区
remove 删除文件
rename 重命名文件
tmpfile 创建临时文件
perror 打印错误信息

stdlib.h

函数 功能
malloc 动态分配内存
calloc 分配并清零内存
realloc 重新分配内存
free 释放内存
atoi 字符串转int
atol 字符串转long
atof 字符串转double
strtol 字符串转long(安全)
strtod 字符串转double(安全)
rand 生成随机数
srand 设置随机种子
qsort 快速排序
bsearch 二分搜索
abs 整数绝对值
labs long绝对值
exit 终止程序
atexit 注册退出函数
system 执行系统命令
getenv 获取环境变量

string.h

函数 功能
strcpy 字符串拷贝
strncpy 字符串拷贝(安全)
strcat 字符串拼接
strncat 字符串拼接(安全)
strcmp 字符串比较
strncmp 字符串比较(指定长度)
strlen 字符串长度
strchr 查找字符(从左)
strrchr 查找字符(从右)
strstr 查找子串
strtok 字符串分割
memcpy 内存拷贝
memmove 内存移动(允许重叠)
memset 内存填充
memcmp 内存比较

math.h

函数 功能
fabs 浮点绝对值
sqrt 平方根
pow 幂运算
ceil 向上取整
floor 向下取整
round 四舍五入
fmod 浮点取余
log 自然对数
log10 常用对数
sin 正弦
cos 余弦
tan 正切
asin 反正弦
acos 反余弦
atan 反正切
atan2 反正切(两个参数)

ctype.h

函数 功能
isalpha 是否字母
isdigit 是否数字
isalnum 是否字母或数字
isupper 是否大写
islower 是否小写
isspace 是否空白
ispunct 是否标点
isprint 是否可打印
toupper 转大写
tolower 转小写

time.h

函数/宏 功能
time 获取当前时间
clock 获取CPU时钟数
localtime 转本地时间
gmtime 转UTC时间
strftime 格式化时间
difftime 计算时间差
mktime tm转time_t
CLOCKS_PER_SEC 每秒时钟数

assert.h

函数/宏 功能
assert(expr) 断言,失败则终止
NDEBUG 定义后禁用assert

errno.h

符号 功能
errno 全局错误码变量
EDOM 定义域错误
ERANGE 值域错误

数据类型范围速查

类型 大小(字节) 最小值 最大值
char 1 -128 127 或 0/255
signed char 1 -128 127
unsigned char 1 0 255
short 2 -32768 32767
unsigned short 2 0 65535
int 4 -2147483648 2147483647
unsigned int 4 0 4294967295
long 4/8 依平台 依平台
unsigned long 4/8 0 依平台
long long 8 -9223372036854775808 9223372036854775807
float 4 约1.2e-38 约3.4e+38
double 8 约2.2e-308 约1.8e+308
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏