C 如果if语句中只有一个变量名,这意味着什么

C 如果if语句中只有一个变量名,这意味着什么,c,if-statement,C,If Statement,我通常理解if语句哈哈,但是当if语句中只有一个变量时,下面的代码总是执行吗?在这种情况下,变量legal只是一个整数 if (legal) candidates[(*n)++] = i; 非零值被视为true,零值被视为false,因此if(value)等同于if(value!=0) 事实上,99 C之前甚至没有标准的布尔类型。非零值被视为true,零值被视为false,因此if(value)等同于if(value!=0) if (legal) 事实上,99之前的C甚至没有标准的

我通常理解if语句哈哈,但是当if语句中只有一个变量时,下面的代码总是执行吗?在这种情况下,变量legal只是一个整数

if (legal) 
    candidates[(*n)++] = i;

非零值被视为true,零值被视为false,因此
if(value)
等同于
if(value!=0)


事实上,99 C之前甚至没有标准的布尔类型。

非零值被视为true,零值被视为false,因此
if(value)
等同于
if(value!=0)

if (legal)
事实上,99之前的C甚至没有标准的布尔类型

if (legal)
相当于

if (legal != 0)
否则,如果我写:

if (legal)
{ 
  *instructions*
}
这意味着只有当
legal
是非零变量(
int
,或
char
)时,才会执行
指令

相当于

if (legal != 0)
否则,如果我写:

if (legal)
{ 
  *instructions*
}

这意味着只有当
legal
是非零变量(
int
,或
char
)时,才会执行
指令

在C zero中为false,任何非零变量均为true。所以这个表达式的意思基本上是
if(legal!=0)
。在C中,任何值为零的变量都被视为“false”,任何非零值都被视为“true”。反过来也是常见的:
if(!legal).
在C中,zero是false,任何非零的值都是true。所以这个表达式的意思基本上是
if(legal!=0)
。在C中,任何值为零的变量都被视为“false”,任何非零值都被视为“true”。反过来也是常见的:
if(!legal)