我的代码:
void main()
{
while(1){
if(printf("%d",printf("%d")))
break;
else
continue;
}
}
我知道printf()
会返回打印的字符数。所以,为什么上面的代码在输出1时会输出Garbage values
。
请解释一下。
感谢。
答案 0 :(得分:4)
因为第二个printf
缺少它应该打印的数字......
printf
打印的数字。例如。如果你的代码是
printf("%d",printf("%d", 7));
你会看到71;先打印7,然后打印1.
答案 1 :(得分:2)
因为您没有为内部printf
的{{1}}
检查:
%d
,请注意我在if(printf("%d",printf("%d ",3)))
现在你会看到
%d
最后3 2
答案 2 :(得分:0)
printf("%d",printf("%d"))
等于
int i = printf("%d");
printf("%d",i);
但是,int i =printf("%d");
行将打印垃圾值,因为您没有为其提供所需的值。