已知a=1,b=2,c=3,则表达式a*b&&(b++,!c)&&(a++,c++)的值是。该表达式运算过后,a=? ,b=? ,c=?
4个回答
展开全部
该表达式运算过后,a=1 ,b=3 ,c=3
因为 1*2的值非0,被认为是“真”
&&后面继续计算:b++,!c
是一个逗号表达式,b变成了3,!c的值为0(因为c原值为非0,即“真”,取反后即为“假”),所以逗号表达式的值为“假”。
整个表达式的值已经确定,为“假”,后面总分不再运算。
所以,a=1 ,b=3 ,c=3
因为 1*2的值非0,被认为是“真”
&&后面继续计算:b++,!c
是一个逗号表达式,b变成了3,!c的值为0(因为c原值为非0,即“真”,取反后即为“假”),所以逗号表达式的值为“假”。
整个表达式的值已经确定,为“假”,后面总分不再运算。
所以,a=1 ,b=3 ,c=3
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据运算符的优先级,表达式等价于
(++a) || (-b) && (++c)
在C/C++中 0为false,非0就是true,上面的表达式就等于
true || true && true
所以最终的值就是true,如果按照整数输出,则为1
(++a) || (-b) && (++c)
在C/C++中 0为false,非0就是true,上面的表达式就等于
true || true && true
所以最终的值就是true,如果按照整数输出,则为1
追问
很明显不是啊。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询