实际写代码中并不用关注这个问题 一般需要复杂表达式的情况下会尽可能进行拆分,如果实在无法拆分,也应该尽可能全部加上括号,以防在优先级上产生问题
追问好的
第2个回答 2019-01-17
运算符
按位与 (&)优先级 8, 用于: 表达式 & 表达式
逻辑与 (&&) 优先级 11, 用于: 表达式 && 表达式
逻辑或 ( || ) 优先级 12, 用于: 表达式 || 表达式
条件运算符 (?:) 优先级 13, 用于三目运算: 表达式1? 表达式2: 表达式3
优先级 8 高于 11, 高于 12, 高于 13。
按位与 (&)优先级 8, 用于: 表达式 & 表达式
逻辑与 (&&) 优先级 11, 用于: 表达式 && 表达式
逻辑或 ( || ) 优先级 12, 用于: 表达式 || 表达式
条件运算符 (?:) 优先级 13, 用于三目运算: 表达式1? 表达式2: 表达式3
优先级 8 高于 11, 高于 12, 高于 13。
第3个回答 2019-01-16
C语言里面&&和||都是逻辑操作,一个是逻辑与一个逻辑或,他们的优先级是一致的。追问
不是一致的 &&的优先级是比||高的 具体体现在 --x||--y&&++z应该是先判断--x是否为0 为0继续判断(--y&&++z)而不是判断--y --x为1则不继续判断后面 如果是同优先级 就不会发这个问题了…
追答你说的对的,C语言有一个Operators Precedence的表,那个&&的确是在||的上面。我觉得你的例子就是挺好的呀