小编Dar*_*rox的帖子

使用“&&”和“||” 在 C 中条件之外的语句中

我正在用 C 做一个 uni 作业,我得到了一个已经完成的程序来调试它,我已经走过这行代码

int main() {
FILE *personFile;

//...
//some code
//..

personFile && fclose(personFile);     //??
return 0;
}
Run Code Online (Sandbox Code Playgroud)

代替

if (personFile != NULL) 
    fclose(personFile);
Run Code Online (Sandbox Code Playgroud)

我认为fclose(personFile) 如果personFile为 NULL则永远不会发生,因为 C 快速评估“条件”并跳过 && 中的第二个参数,如果第一个参数为假,但我不确定

这真的是它的工作原理吗?这种“欺骗”条件的方式是不好的做法还是我很幸运从未见过这样的事情?

c boolean-logic operators conditional-statements

1
推荐指数
1
解决办法
692
查看次数