如何理解运算符的优先级
我对C语言中的优先级有点不理解,下面的语句到底是怎样执行的呢:
d=a++||b++&&c++;
++、&&、||的优先级依次降低,所以按我的想法程序要先执行a++,b++,c++,再执行b&&c(b,c值未变)最后执行a||部分,但是这是错误的想法,程序先执行了a++,b++,再执行||,请问我对优先级的理解出了什么错
[解决办法]
P.S.
不过这里除了运算符的优先级,还涉及到 || &&运算的执行特性
|| 如果左边是真,就不判断(执行)右边的表达式了
&& 的左边是假亦然
这个要稍微注意一下,有时在写代码的时候稍微可以优化,虽然代码级的优化很微小乐:)
[解决办法]
P.S.
不过这里除了运算符的优先级,还涉及到 || &&运算的执行特性
|| 如果左边是真,就不判断(执行)右边的表达式了
&& 的左边是假亦然
这个要稍微注意一下,有时在写代码的时候稍微可以优化,虽然代码级的优化很微小乐:)
以上的意思是不是遇到 || 时,会先判断左边是否为真,如果是就不判断右边表达式,如不是真,才按优行级执行