%d 是 printf 函数中的一个格式说明符(Format Specifier),它的作用是:告诉 printf 函数,这里需要将一个整数**变量或值,以十进制(我们平时用的0-9进制)的形式打印出来。

(图片来源网络,侵删)
详细解释
为了更好地理解,我们把它拆分成几个部分来看:
printf 是什么?
printf 是 C 语言标准库中的一个函数,全称是 "Print Formatted"(格式化打印),它的主要功能是在控制台(终端)上输出格式化后的字符串。
它的基本语法是:
int printf(const char *format, ...);
format是一个格式化字符串,它包含了要输出的普通文本,以及一些特殊的格式说明符(如%d)。- 表示可变参数,也就是你想要输出的变量,这些变量的数量和类型必须与格式字符串中的格式说明符一一对应。
的作用
在 printf 的格式字符串中,百分号 是一个特殊字符,它标志着“格式说明符的开始”,它告诉 printf:“注意,我后面要跟一个代码,这个代码会告诉你如何处理下一个要打印的变量。”

(图片来源网络,侵删)
d 的作用
紧跟在 后面的字母 d,是具体的格式代码,它指定了变量的数据类型和输出格式。
d代表 decimal(十进制)。- 它要求
printf将对应的参数(必须是int类型的整数)解释为一个十进制整数,然后打印出来。
一个简单的例子
让我们通过一个完整的 C 语言程序来看 %d 是如何工作的。
#include <stdio.h> // 必须包含这个头文件才能使用 printf
int main() {
int age = 25;
int score = 98;
// 使用 %d 来打印整数变量
printf("我的年龄是: %d 岁\n", age);
printf("我的考试得分是: %d 分\n", score);
// 也可以在一个 printf 中使用多个 %d
printf("一个%d加上另一个%d等于%d\n", 2, 3, 2 + 3);
return 0;
}
输出结果:
我的年龄是: 25 岁
我的考试得分是: 98 分
一个2加上另一个3等于5
代码分析:

(图片来源网络,侵删)
#include <stdio.h>:引入标准输入输出库,因为printf函数在其中定义。int age = 25;:定义了一个整型变量age并赋值为 25。printf("我的年龄是: %d 岁\n", age);:printf遇到字符串中的%d,就知道这里要放一个整数。- 它会去寻找
printf函数的第二个参数(也就是age变量)。 - 它获取
age的值(25),并将其替换掉%d。 \n是一个换行符,表示打印完后换一行。
printf("一个%d加上另一个%d等于%d\n", 2, 3, 2 + 3);:- 这个例子更清晰地展示了
printf的工作方式。 - 第一个
%d被替换为2。 - 第二个
%d被替换为3。 - 第三个
%d被替换为表达式2 + 3的计算结果5。
- 这个例子更清晰地展示了
与 %d 相关的其他整数格式说明符
C 语言提供了多种整数格式说明符,以满足不同的需求。%d 是最常用的一种,但它有特定的使用场景。
| 格式说明符 | 类型 | 描述 | 示例代码 | 输出 |
|---|---|---|---|---|
%d |
int |
有符号十进制整数,如果数字是负数,会打印负号。 | printf("%d", -10); |
-10 |
%i |
int |
与 %d 几乎完全相同,都表示有符号十进制整数。 |
printf("%i", 10); |
10 |
%u |
unsigned int |
无符号十进制整数,只打印非负数。 | printf("%u", 10); |
10 |
%x |
int |
小写十六进制整数。 | printf("%x", 255); |
ff |
%X |
int |
大写十六进制整数。 | printf("%X", 255); |
FF |
%o |
int |
八进制整数。 | printf("%o", 8); |
10 |
%ld |
long |
有符号长整型,用于打印比 int 范围更大的整数。 |
long big_num = 123456789L; printf("%ld", big_num); |
123456789 |
%lld |
long long |
有符号长长整型,用于打印非常大的整数。 | long long long_num = 123456789012345LL; printf("%lld", long_num); |
123456789012345 |
重要提示: 格式说明符必须与要打印的变量的类型匹配,如果你用
%d去打印一个long类型的变量,可能会导致警告或错误输出(在64位系统上尤其常见)。long num = 123456789L; // 错误或警告:格式 '%d' expects argument of type 'int', but argument 2 has type 'long' printf("错误示范: %d\n", num); // 正确的做法 printf("正确示范: %ld\n", num);
%d是printf的一个格式说明符。- 它的作用是以十进制格式打印一个
int类型的整数。 - 它是 和
d的组合, 标识格式开始,d指定十进制整数。 - 使用
printf时,%d的数量必须与后面提供的整型变量的数量和顺序相匹配。 - 根据需要,可以使用
%ld,%x,%u等其他格式说明符来打印不同类型或不同进制的整数。
