C 语言格式说明符

2025年7月5日 | 阅读 9 分钟

在 C 编程中,格式说明符是在格式化输入和输出函数中使用的字符串。格式字符串始终以 '%' 字符开头,并用于多个函数,例如 printf()、scanf() 等。 C 编程语言 提供多种格式说明符以及多种不同的类型,包括 %u 用于无符号整数,%i 用于整数,%c 用于字符,%f 用于浮点数,等等。

语法

它具有以下语法:

在这个语法中,

  • 格式说明符:它代表以 % 符号开头的格式说明符。
  • 变量:它代表变量的名称。

C 中的格式说明符类型

C 中常用几种格式说明符。其中一些如下:

格式说明符描述
%d 或 %i用于打印带符号整数值,其中带符号整数意味着变量可以同时容纳正数和负数。
%u用于打印无符号整数值,其中无符号整数意味着变量只能容纳正数。
%o用于以八进制整数形式打印无符号八进制整数,其中八进制数始终以前导 0 值表示。
%x用于打印十六进制无符号整数,其中十六进制整数值始终以 0x 值开头。在此,字母字符以小写字母打印,例如 a、b、c 等。
%X用于打印十六进制无符号整数,但 %X 以大写字母打印字母字符,例如 A、B、C 等。
%f用于打印十进制浮点值。默认情况下,它在 '.' 之后打印 6 位。
%e 或 %E用于科学计数法。它也称为尾数或指数。
%g 或 %G用于打印十进制浮点值,它使用固定精度,即输入值的小数点后的值将与输出值完全相同。
%p用于以十六进制形式打印内存地址。
%c用于打印带符号字符。
%s用于打印字符串。
%ld用于打印长带符号整数值。
%%用于打印 % 字符本身。
%llu主要用于打印大的无符号整数。

现在,让我们通过一个例子来详细了解所有格式说明符。

1) 带符号整数格式说明符 (%d)

在 C 编程中,带符号整数格式说明符主要用于 printf() 和 scanf() 函数来处理带符号整数类型的值。它可以容纳正数和负数。

C 中带符号整数格式说明符示例

让我们举一个例子来说明 C 中的带符号整数格式说明符。

示例

编译并运行

输出

 
Value of x is: 5
Value of y is: 10  

说明

在上面的代码中,我们使用了 %d 格式说明符来打印 x 和 y 的整数值。

2) 无符号整数格式说明符 (%u)

在 C 编程中,无符号整数 (%u) 格式说明符主要用于无符号整数 数据类型。它只能容纳正数。如果我们给 %u 赋一个负数,它会将该整数转换为其 2 的补码。

C 中无符号整数格式说明符示例

让我们举一个例子来说明 C 中的无符号整数。

示例

编译并运行

输出

 
Value of x is: 15
Value of y is:4294967276   

说明

在此示例中,我们使用了无符号 (%u) 格式说明符来打印 x 和 y 的值。这里,我们给 x 赋了一个正值,所以 %u 说明符打印了 x 的精确值。但是,它没有打印 y 的正确值,因为 y 包含负值。

3) 无符号整数八进制数 (%o)

在 C 编程中,无符号八进制数 (%o) 格式说明符主要用于打印八进制整数值,其中八进制数始终以前导 0 值表示。

C 中无符号八进制格式说明符示例

让我们举一个例子来说明 C 中的无符号八进制整数格式说明符。

示例

编译并运行

输出

 
Octal value of a is: 100
Integer value of a is: 64   

说明

在上面的代码中,我们使用了 %o 八进制格式说明符来打印 a 的八进制值和整数值。

4) 无符号十六进制格式说明符 %x 和 %X

在 C 编程中,十六进制 %x 格式说明符主要用于格式化字符串中的十六进制整数。如果我们使用 %x 格式说明符,十六进制数字中的字母将是小写字母。如果我们使用 %X 格式说明符,十六进制数字中的字母将是大写字母。

C 中无符号十六进制格式说明符示例

让我们举一个例子来说明 C 中的无符号十六进制格式说明符。

示例

编译并运行

输出

 
Hexadecimal value of y is: a
Hexadecimal value of y is: A
Integer value of y is: 10   

说明

在此示例中,我们使用变量 y,它包含十六进制值 'A'。我们以两种格式显示 y 的十六进制值。我们使用 %x 和 %X 来打印十六进制值,其中 %x 以小写字母 'a' 显示值,而 %X 以大写字母 'A' 显示值。

5) 浮点数格式说明符 (%f)

在 C 编程中,浮点数 (%f) 格式说明符用于打印浮点值。默认情况下,它在 '.' 之后打印 6 位。

C 中浮点数格式说明符示例

让我们举一个例子来说明 C 中的浮点数格式说明符。

示例

编译并运行

输出

 
Floating point value of y is: 3.400000  

说明

在此示例中,我们将变量 y 定义为 float 数据类型,它打印 y 的浮点值。

6) 指数格式说明符 (%e 或 %E)

在 C 编程中,指数 (%e 或 %E) 格式说明符用于科学计数法。它也称为尾数或指数。

示例

编译并运行

输出

 
Exponential value of y is: 3.000000e+00
Exponential value of y is: 3.000000E+00   

说明

在此示例中,我们演示了如何使用 %e 和 %E 格式说明符以指数(科学)计数法打印浮点数。 %e 格式说明符以小写形式显示值(例如,3.000000e+00),而 %E 使用大写形式(例如,3.000000E+00)。

固定浮点数格式说明符 (%g)

在 C 编程中,此固定浮点数格式说明符主要用于打印十进制浮点值,并使用固定精度。这意味着输入值的小数点后的值将与输出值完全相同。

C 中固定浮点数格式说明符

让我们举一个例子来说明 C 中的固定浮点数格式说明符。

示例

编译并运行

输出

 
Float value of a is: 4.5  

说明

在此示例中,我们使用 %g 格式说明符打印变量 a 的浮点值。之后,%g 说明符会在 %f 和 %e 之间自动选择。

地址格式说明符 (%p)

在 C 编程中,地址 (%p) 格式说明符用于打印 C 中的地址和指针。

C 中地址格式说明符

让我们举一个例子来说明 C 中的地址格式说明符。

示例

编译并运行

输出

 
Address value of x in hexadecimal form is: 0x7ffca1a7a284   

说明

在此示例中,我们使用 %p 格式说明符显示变量 x 的内存地址。之后,我们使用 %p 格式说明符以十六进制格式显示指针(地址)值,而 &x 则检索变量 x 的地址。

字符格式说明符 (%c)

在 C 编程中,字符 (%c) 格式说明符用于打印 char 数据类型值。它也可用于 C 语言中的格式化输入和输出。

C 中字符格式说明符示例

让我们举一个例子来说明 C 中的字符格式说明符。

示例

编译并运行

输出

 
Value of a is: c  

说明

在此示例中,我们将字符变量 a 定义为值 'c',并使用 %c 格式说明符打印它。 %c 说明符用于在 printf() 函数中显示单个字符输出。

字符串格式说明符 (%s)

在 C 编程中,字符串 (%s) 格式说明符主要用于打印 字符串

C 中字符串格式说明符 (%s)

让我们举一个例子来说明 C 中的字符格式说明符。

示例

编译并运行

输出

 
Tpoint Tech   

说明

在此示例中,我们在 printf() 函数中使用 %s 格式说明符打印字符串 "Tpoint Tech"。 %s 说明符用于输出字符序列(字符串)。

最小字段宽度说明符

如果我们想在屏幕上显示占用最少空格数的输出。我们可以通过在格式说明符的百分号后显示一个整数来实现。

示例

编译并运行

输出

 
    900
900  

说明

在此示例中,我们使用 %8d 说明符在 8 个空格后显示值,而 %-8d 说明符将使值左对齐。

现在,我们将看到如何填充空隙。如下面的代码所示:

示例

编译并运行

输出

 
00000012  

说明

在此示例中,%08d 表示空隙用零填充。

指定精度

在 C 编程中,我们可以使用 '.'(点)运算符来指定精度,后面跟着一个整数和格式说明符。

C 中指定精度示例

让我们举一个例子来说明 C 中的指定精度。

示例

编译并运行

输出

 
12.20

说明

在此示例中,我们使用 %.2f 格式说明符打印浮点值 x,小数点后有两位数字。之后,它会显示四舍五入后的输出,如 12.20。

C 格式说明符常见问题解答

1) C 中的格式说明符是什么?

在 C 编程中,格式说明符代表在 printf() 和 scanf() 等函数中使用的符号。这些格式说明符有助于显示输入和输出的数据类型,例如 %c 用于字符,%f 用于浮点数,%d 用于整数。

2) C 中 %d 格式说明符是什么意思?

在 C 编程中,%d 格式说明符用于以十进制形式读取或打印整数值。

3) 我们可以在 C 中的 puts() 和 gets() 函数中使用格式说明符吗?

否,我们不能在 puts() 和 gets() 函数中使用格式说明符,因为这些函数只能处理字符串。

4) C 中 %p 格式说明符是什么意思?

在 C 编程中,%p 格式说明符主要用于以十六进制格式打印内存地址。

5) 为什么格式说明符在 C 编程中很重要?

在 C 编程中,格式说明符有助于正确解释和显示数据。如果我们不使用正确的说明符,程序可能会产生错误和错误的输出。


下一个主题C 转义序列