我了解到该if条件可以接受2个值之一(0或1)作为输入。
现在,我偶然发现了以下代码:
#include <stdio.h>
int main(void)
{
if (printf("Hello World")) { }
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们有一个函数不给出0或1,而是给出一组字符作为输出。
起初,我希望看到一个错误,但是我没有得到一个,并且代码运行正常。
有人可以解释一下这种现象的原因吗
谢谢
我了解到“如果”条件只能接受0或1作为输入。
绝对不正确。条件几乎可以接受任何内容,如果等于0,则解释为false;如果不等于0,则解释为true。
当我初次看到它时,我一直期待一个错误,但是由于有printf,但它没有给出。
对。为什么会出现错误? printf返回一个int值,所以很好。(在这种情况下,printf返回零或非零甚至都没有关系,因为if语句的主体中什么也没有发生。)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |