以下是你问到的几个最常用格式说明符的含义(2025~2026年标准仍然一致):
| 格式符 | 代表的数据类型 | 含义说明 | 常见用法举例 | 输出样子示例 |
|---|---|---|---|---|
%d | int / signed int | 十进制有符号整数(最常用的整数格式) | printf("%d", 123); | 123 |
%f | float / double | 浮点数(默认显示6位小数) | printf("%f", 3.14159); | 3.141590 |
%p | 指针(任何指针类型) | 指针地址(通常以16进制显示,带0x前缀) | int a; printf("%p", &a); | 0x7ffee4c0a4ac |
%c | char | 单个字符 | printf("%c", 'A'); | A |
%s | char*(字符串) | 字符串(从地址开始输出直到遇到’\0’) | printf("%s", "Hello"); | Hello |
%% | 无(特殊情况) | 输出一个百分号本身(% 是转义字符) | printf("完成度: 100%%"); | 完成度: 100% |
常用对比记忆表(面试/考试常考)
想输出什么类型 → 用什么格式符 → 备注
─────────────── ──────────────── ────────────────────────
普通整数 → %d ← 最常用!!
正整数也可以 → %u (无符号十进制)
单个字符 → %c
字符串 → %s ← 非常常用!
浮点数 → %f 默认6位小数
更精确的浮点数 → %.2f / %.3f 控制小数位数
科学计数法 → %e / %g
指针地址 → %p 几乎总是带0x前缀
要输出 % 符号本身 → %% ← 转义!!
十六进制(小写) → %x
十六进制(大写) → %X
八进制 → %o
快速记忆口诀(超好用)
%d整 %f浮 %c字 %s串
%p指 %u无 %x十六 %%百
几个最容易出错的例子(建议都背下来)
int a = 65;
printf("%d\n", a); // 输出 65
printf("%c\n", a); // 输出 A
double pi = 3.1415926535;
printf("%f\n", pi); // 3.141593
printf("%.3f\n", pi); // 3.142
printf("%.8f\n", pi); // 3.14159265
int *p = &a;
printf("%p\n", p); // 类似 0x7ffee1234568
printf("%p\n", (void*)p); // 推荐写法,更规范
printf("成功率: 99%%!\n"); // 必须写 %% 才能输出 %
希望这个总结能帮你快速记住这些最核心的格式说明符!
有其他格式符(如%lld、%zu、%lf等)想了解也可以继续问~ 😄