int main(){
// Comment the next line, Garbage value is printed. However, this shows an integer value.
int x=32;
printf("%d");
return 0;
}
出现这种行为的原因,还是随意的?
答案 0 :(得分:3)
您告诉printf()
如何打印某些内容(格式说明符%d
),但您没有告诉printf()
< 打印。
详细说明,您忘记为提供的格式说明符%d
提供所需的参数。
C
标准说,如果提供的格式说明符没有足够的参数,behaviour is undefined。
FWIW,只需指定格式说明符就不会神奇地考虑它的参数。你需要写一些像
这样的东西 printf("%d", x);
打印x
的值。
答案 1 :(得分:3)
printf()
具有以下原型
int printf(const char *,...);
您传递的内容是%d
到printf()
,因为这是打印出来的格式说明符int
printf()
查找需要打印的参数你没有通过任何这是未定义的行为