我的代码:
void main()
{
while(1){
if(printf("%d",printf("%d")))
break;
else
continue;
}
}
我知道printf()
返回打印的字符数。那么,为什么上面的代码Garbage values
应该输出1。请解释一下。
谢谢。
我的代码:
void main()
{
while(1){
if(printf("%d",printf("%d")))
break;
else
continue;
}
}
我知道printf()
返回打印的字符数。那么,为什么上面的代码Garbage values
应该输出1。请解释一下。
谢谢。
因为第二个printf
缺少它应该打印的数字......
顺便说一句,不要期望只看到 1,您会看到printf
之前第二个打印的数字。例如,如果您的代码是
printf("%d",printf("%d", 7));
你会看到 71;将打印前 7 个,然后打印 1 个。
因为您没有为 inner 提供printf
参数%d
检查:
if(printf("%d",printf("%d ",3)))
,请注意我在后面使用了一个空格%d
现在你会看到
3 2
最后2
是因为有多余的空间
printf("%d",printf("%d"))
等于
int i = printf("%d");
printf("%d",i);
但是,该int i =printf("%d");
行将打印一个垃圾值,因为您没有给它所需的值。