C 语言书

速查表

写代码时对照;先理解再抄格式。

数据类型与格式化

名称写法说明
int%d整数
float/double%f小数
char%c单个字符
字符串%schar 数组,以 \0 结尾
取地址&变量scanf 必须用
解引用*指针取指针指向的值

常用头文件

名称写法说明
stdio.hprintf / scanf输入输出
string.hstrlen strcpy strcmp字符串
stdlib.hatoi rand转换与随机
math.hsqrt pow数学(链 -lm)

流程控制骨架

名称写法说明
ifif (条件) { } else { }分支
switchswitch(x){case 1: break;}离散多分支
forfor(i=0;i<n;i++)固定次数
whilewhile(条件)条件循环
break/continue跳出 / 跳过本次循环控制

位运算四件套

名称写法说明
置位x |= BIT(n)第 n 位变 1
清零x &= ~BIT(n)第 n 位变 0
翻转x ^= BIT(n)第 n 位取反
判断if (x & BIT(n))第 n 位是否为 1
宏#define BIT(n) (1<<(n))生成掩码

scanf / printf 套路

名称写法说明
读整数scanf("%d", &n)必须 &
读字符串scanf("%31s", buf)限长防溢出
读字符scanf(" %c", &c)前导空格吃掉回车
保留两位小数printf("%.2f", x)浮点展示
右对齐宽度printf("%5d", n)表格对齐

调试清单(出 bug 先查这些)

名称写法说明
漏分号编译 error 指向下一行看报错上一行
= 当 ==条件总成立改 ==
数组越界随机崩溃/改坏变量检查下标 < n
漏 &scanf 崩溃变量前加 &
未初始化结果怪定义时就赋值