以下是什么输出,背后的原因是什么?
main()
{
printf("%%%%");
}
答案是“%%”,但我不知道为什么。
答案 0 :(得分:8)
%
是格式说明符的开头。 (例如,"%d"
表示“打印int
”。)格式说明符转义后的%
,打印单个“%”。
也就是说,"\\"
以相同的方式产生一个反斜杠,"%%"
会产生一个百分号。
答案 1 :(得分:3)
从技术上讲,输出可能是任何内容,因为你最后没有打印换行符,也因为你没有包含stdio.h
: - )。
然而,纠正两个错误:
#include <stdio.h>
int main(void)
{
printf("%%%%\n");
return 0;
}
上面应该打印%%
后跟换行符。
每个转换规范都由字符%。
引入...
转换说明符及其含义为:
...
%
:写入%
个字符。没有参数被转换。完整的转换规范应为%%
。
(C99 7.19.6.1)。
答案 2 :(得分:1)
在printf中,%
通常用于表示%s
或%d
或%5.2f
等令牌。如果要输出文字%
,请使用%%
。
答案 3 :(得分:0)
Format specifiers are typically introduced by a % character,
and a literal percent sign can be copied into the output
using the escape sequence %%.
因此,您可以使用%%在输出中打印%。该问题有一系列%符号,因此输出为%%。