C语言中if(i-2)是什么意思?
what does if(i-2) mean in C language?
所以,除了这个 if
语句 - if(i-2)
:
我理解代码中的所有内容
for (i = -1, j = 0; i < 4; i++, j++)
if (i - 2)
printf("%d\t", j * (i + 2));
任何人都可以解释这个 if
语句的含义,它对 printf
有什么影响吗?谢谢。
在 C 中,整数在 if
语句中被视为布尔值:
- 0 为假
- 非零为真
所以 if (i-2)
等价于 if (i != 2)
.
如果控制表达式为真,则执行 if
下的语句。在 C 中,计算结果为 0 的表达式被视为假,而任何其他值都被视为真。
所以 if (i-2)
意味着 printf
将在 i-2
非零时执行,即当 i
不等于 2.
在 c 中,任何值都可以在 if
语句中使用,而不仅仅是布尔表达式。这会变成表达式 != 0。这通常是违反风格指南的,因为它可能会造成混淆并容易出错。
下面两个是等价的
if (val) ...
if (val != 0) ...
所以在你的情况下
if (i - 2)
当 i-2
为 0
时, 对于 i
的每个值都为真,但 2
除外
所以,除了这个 if
语句 - if(i-2)
:
for (i = -1, j = 0; i < 4; i++, j++)
if (i - 2)
printf("%d\t", j * (i + 2));
任何人都可以解释这个 if
语句的含义,它对 printf
有什么影响吗?谢谢。
在 C 中,整数在 if
语句中被视为布尔值:
- 0 为假
- 非零为真
所以 if (i-2)
等价于 if (i != 2)
.
如果控制表达式为真,则执行 if
下的语句。在 C 中,计算结果为 0 的表达式被视为假,而任何其他值都被视为真。
所以 if (i-2)
意味着 printf
将在 i-2
非零时执行,即当 i
不等于 2.
在 c 中,任何值都可以在 if
语句中使用,而不仅仅是布尔表达式。这会变成表达式 != 0。这通常是违反风格指南的,因为它可能会造成混淆并容易出错。
下面两个是等价的
if (val) ...
if (val != 0) ...
所以在你的情况下
if (i - 2)
当 i-2
为 0
时, 对于 i
的每个值都为真,但 2
除外