下面这行if语句等价于if(x%3 != 0),这里的非零,是x%3必须等于逻辑值1才为真,还是等于除0以外其他的数

问题遇到的现象和发生背景

下面这行if语句等价于if(x%3 != 0),这里的非零,是x%3必须等于逻辑值1才为真,还是等于除0以外其他的数如1234567才是真?

if(a)也是一样吗?

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
if(x % 3)
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

if(x % 3)判断真假就是去看x%3的数值了,数值为0就是false,除0以外的其他数均为true。对于int a来说,if(a)也是一样的。

(1) x % 3 != 0 为真的, 那说明 x % 3 是 非 0的其他数, 如果 x % 3 == 0,则 表达式 为 false
(2)if ( x % 3) 这个就不一样了, x % 3 == 0 , 这个表达式 为 false, x % 3 != 0 , 这个表达式 为 true
C语言 0 为 false,非0 为 true