if(tree->left)
if(!(*tree))
他们的意思是:
if(tree->left==0)
if((*tree)==1)
我没有发现任何相关内容。
答案 0 :(得分:2)
在C中没有布尔值而只有整数。 if语句只检查与0的相等性,将0评估为false,将其他所有内容评为true,因此您的示例等同于
if(tree->left != 0)
if((*tree)==0)
答案 1 :(得分:1)
这意味着
if(tree->left != 0 )
if((*tree) == 0)
答案 2 :(得分:0)
C和C ++会将0
解释为false
,将其他任何内容解释为true
。
例如,做
if (my_var & 0x0010) {
printf("Hello world");
}
如果my_var
在第五个位置设置了位,将打印消息。