设int x=1,y=1;表达式(!x||y--)的值是( )求解
展开全部
1、先算!x,结果为0;
2、再算y--,结果为1,y的值变为0;
3、再算逻辑或||,0或1,结果为1。所以最后结果为1
基本的优先级需要记住:
指针最优,单目运算优于双目运算,如正负号。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7。
逻辑运算最后结合。简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。
扩展资料:
C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。
相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。
而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)
合理使用优先级可以极大简化表达式。
展开全部
先!x如果为1后面的就不要看了,现在为0。然后看y,y--,但取--前的值,为1,所以结果为真。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先计算
!x
值为0
继续计算y--
先取值后自减
值为1
最终结果为0||1=1
所以
填1
!x
值为0
继续计算y--
先取值后自减
值为1
最终结果为0||1=1
所以
填1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得答案是1
啊,
先看!x
是0,
然后
0
||
1
是
1
然后
y
--
,所以表达式的结果为1
啊,
先看!x
是0,
然后
0
||
1
是
1
然后
y
--
,所以表达式的结果为1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询