C语言中的一句逻辑表达式: a==0||b%a=0 这句话是什么意思?

如题所述

首先:你的表达式a==0||b%a=0 肯定是错的。
在C语言中(以你的这个表达式为例啊),%(求余)优先级最高,其次是关系运算符==(相等),再就是逻辑运算符||(逻辑或),最后是=(赋值)。
但是C语言不允许向表达式赋值,所以b%a=0是错误的。

如果是 a==0||b%a==0 ,相当于(a==0)||(b%a==0),这样的话,表达式的意思是“a为零,或者b能被a整除”。
b%a==0:b除以a的余数为0。%是两数相除,取余数,只能用于整型数据。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-06
a==0||b%a=0
=优先级最低 最后考虑
||或前面 判断 a 是否等于0
后面 判断b%a 是否等于0

a==0||b%a整体的结果是0或者是1 然后0或者1被赋值为0
你这语句有错误的,赋值运算的做操作书必须是左值 a==0||b%a是逻辑0或者1不能作为左值
第2个回答  2011-07-06
a等于0或者b除以a的余数等于0 应该是要表达这个意识 。。但是表达式写错了应该是a==0||b%a==0
第3个回答  2011-07-06
这个语句等价于(a==0||b%a)=0
其中括号里运算结果为常数,常数不能赋值,所以编译报错
第4个回答  2011-07-06
a=0或者b除a余数为0(即可被a整除)追问

那不是应该写成 a==0||b%a==0 么?

相似回答