if(!variable_name)在c语言中的含义是什么

Ask*_*_it 2 c

这是问题所在

int main() {
    int pid = fork();
    if (!pid) {
        // condition 1
    } else {
        // condition 2
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

怎么(!pid)办?

md5*_*md5 10

它相当于:

if (!pid != 0) /* ... */
Run Code Online (Sandbox Code Playgroud)

然后:

if (pid == 0) /* ... */
Run Code Online (Sandbox Code Playgroud)

C11(n1570),第6.5.3.3节一元算术运算符

!如果其操作数的值不等于0,则逻辑否定运算符的结果为0;如果其操作数的值比较等于0则为1.结果具有类型int.表达式!E相当于(0==E).

  • @Lundin这样写它的另一个原因是它可能更容易/更快地阅读和解释. (2认同)