C语言中%d、%f、%p、%c、%s、%的代表意义

在C语言中,%d%f%p%c%s 以及 %(通常写成 %%) 是 printf()scanf() 等函数中最常用的格式说明符(也叫格式占位符或转换说明符)。它们告诉函数应该以什么格式来输出输入对应的数据。

以下是它们最常见的含义和用法总结:

格式符代表意义对应的C语言数据类型典型用法示例说明与注意事项
%d十进制形式输出有符号整数int, short, long 等整数类型printf("%d", 123); → 123
printf("%d", -45); → -45
最常用的整数输出格式,等价于 %i(在输出时几乎相同)
%f小数形式输出浮点数float, doubleprintf("%f", 3.14159); → 3.141590
printf("%.2f", 3.14159); → 3.14
默认显示6位小数,可用 .n 指定小数位数(如 %.2f
%p输出指针(内存地址),通常以十六进制显示任何指针类型(如 int*, void*int a = 10; printf("%p", &a); → 0x7ffee4a0c4ac(地址)通常会自动带 0x 前缀;建议强制转换为 (void*)
%c输出单个字符char, int(会被当作字符)printf("%c", 'A'); → A
printf("%c", 66); → B
只输出一个字符,不会输出字符串
%s输出字符串(以 \0 结尾)char[] 或 char*printf("%s", "Hello"); → Hello必须传入以 \0 结尾的字符数组或字符串指针
%%输出一个真正的 % 百分号无(只是转义)printf("完成度: 95%%"); → 完成度: 95%因为单个 % 有特殊含义,所以要输出 % 必须写成 %%

快速记忆口诀

  • d → decimal(十进制整数)
  • f → float(浮点数/小数)
  • p → pointer(指针地址)
  • c → character(字符)
  • s → string(字符串)
  • % → 百分号本身(用 %% 表示)

常见组合示例

#include <stdio.h>

int main() {
    int a = 100;
    float b = 3.14159;
    char ch = 'Z';
    char str[] = "你好C语言";
    int *ptr = &a;

    printf("整数: %d\n", a);             // 整数: 100
    printf("小数: %.3f\n", b);           // 小数: 3.142
    printf("字符: %c\n", ch);            // 字符: Z
    printf("字符串: %s\n", str);         // 字符串: 你好C语言
    printf("指针地址: %p\n", (void*)ptr); // 指针地址: 0x7ffee...
    printf("折扣: 8.5%% 很划算\n");      // 折扣: 8.5% 很划算

    return 0;
}

希望这个总结清晰明了!如果需要更详细的修饰符(如 %02d%8.2f-左对齐等)说明,也可以继续问我~

文章已创建 4426

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部