作业帮 > 综合 > 作业

c中(j++||k++&&i++)怎么算?初始值i=1.j=1,k=2,运算后i=1,j=2,k=2;为什么?

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/05/10 23:15:53
c中(j++||k++&&i++)怎么算?初始值i=1.j=1,k=2,运算后i=1,j=2,k=2;为什么?
c中(j++||k++&&i++)怎么算?初始值i=1.j=1,k=2,运算后i=1,j=2,k=2;为什么?
根据逻辑运算的运算规则,如果左边的操作数已经能确定整个表达式的值,则右操作数系统不再进行运算.所以你这个式子里只有j++执行了,所以j=2,i和k的值没变
再问: 但是按照优先级不是应该先算&&吗?
再答: 你可以这样理解:(j++||k++)&&i++,&&的左操作数又是一个表达式,这时候你要先算左操作数,所以问题就变成了求:(j++||k++),||也是先算左操作数,所以实质上是先算了j++
再问: 那它算的时候不就没按照优先级吗?
再答: 考虑计算顺序的时候手要考虑括号,然后是运算符本身的性质,然后才是优先级