我正在用 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 快速评估“条件”并跳过 && 中的第二个参数,如果第一个参数为假,但我不确定
这真的是它的工作原理吗?这种“欺骗”条件的方式是不好的做法还是我很幸运从未见过这样的事情?