以下C代码的输出是什么?它是如何工作的?

时间:2014-03-24 16:04:11

标签: c

#include<stdio.h> 

void main() 
{ 
    while(1) 
    { 
        if(printf("%d",printf("%d"))) 
            break; 
        else 
            continue; 
    } 
}

如何在if子句中包含声明?

我得到的输出是Undefined values

1 个答案:

答案 0 :(得分:1)

if子句中的语句是怎么来的?

printf返回要打印的字符数。 C中的任何非零值都可以计算为true,您可以使用返回值来测试if条件。

除此之外,您的程序会调用未定义的行为,因为您没有在内部%d中传递printf的参数。