为什么格式化输入输出需要提供变量?

时间:2013-10-01 10:42:43

标签: c io formatting printf

我刚刚尝试知道输出而不提供变量而只是%d并且编译程序时没有错误,但我想知道输出如何显示如下。

#include <stdio.h>

int main()
{
    printf("%d");    
    return 0;
}

输出变为7288368

1 个答案:

答案 0 :(得分:0)

  

“为什么格式化输入输出需要提供变量?”

因为printf的实施要求如此。来自manual page of printf

“每个转换规范都由字符%引入,并以转换说明符结尾......参数必须与转换说明符正确对应(在类型提升后)。”< / em>的

您使用了"%d"格式字符串,它需要一个适合十进制转换的整数参数,但您没有提供任何参数,这会导致 未定义的行为 < /强>