2013-10-01 58 views
-6

我刚刚试图知道输出没有提供变量,而只是%d,并且在编译程序时没有错误,但我不知道如何显示如下输出。为什么格式化输入输出需要提供变量?

#include <stdio.h> 

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

输出成为7288368

+6

这是不确定的行为。 –

+0

取决于编译器和您设置上述警告标志可能会弹出警告。 –

+1

GIGO。垃圾进垃圾出。 – ppeterka

回答

0

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

因为执行printf要求如此。从manual page of printf

“的每种转换规范由字符%引入,并且用转换指定结束...与转换说明必须对应正确(类型提升后)的参数”。

您已经使用"%d"格式字符串,预计相应的十进制转换一个完整的说法,但你没有提供任何参数,这导致了未定义的行为