-3

我知道句 . 点符号可以精确地分隔字段宽度。但是,我不知道零是如何出现的%。每次我运行它都会显示相同的输出。

编码:

#include <stdio.h>
int main() { printf("%. %. %. "); return 0; }

输出: %.0 %.0 %.0

main.c:13:15: warning: unknown conversion type character 0x20 in format [-Wformat=]                                                                                                         
main.c:13:18: warning: unknown conversion type character 0x20 in format [-Wformat=]                                                                                                         
main.c:13:21: warning: unknown conversion type character 0x20 in format [-Wformat=]                                                                                                         
4

1 回答 1

3

您没有在之后提供有效的转换说明符%(例如d, x, f, g, c, s,p等),因此您正在调用undefined behavior。这意味着任何事情都可能发生。

从 ISO C99 标准的第 7.19.6.1/9 节:

如果转换规范无效,则行为未定义。239)如果任何参数不是相应转换规范的正确类型,则行为未定义。

于 2019-09-19T15:17:00.557 回答