C语言中。int a=1,b=0,c=1; 执行语句 !b||++a&&++c 后,a,b,c
inta=1,b=0,c=1;执行语句!b||++a&&++c后,a,b,c的值分别是……??请详细解说下。答案还是1,0,1,为啥不是2,0,2啊?a和c前面不都是++...
int a=1,b=0,c=1;执行语句 !b||++a&&++c 后,a,b,c的值分别是……??请详细解说下。答案还是1,0,1,为啥不是2,0,2啊?a和c前面不都是++吗,怎么不是先加1再赋值??
展开
3个回答
展开全部
首先根据运算符优先级和结合性。((!b))||((++a)&&(++c))
然后先算!b,此时(!b)=1,为true,于是不需要算||后的内容了。因为:true||任意表达式=true。
注意,运算符优先级不代表计算优先级。
如果你把b=1 结果就是212
然后先算!b,此时(!b)=1,为true,于是不需要算||后的内容了。因为:true||任意表达式=true。
注意,运算符优先级不代表计算优先级。
如果你把b=1 结果就是212
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
或运算,而且是左结合,!b为真,整个表达式就为真了,不再继续运算,也就是++a和++c没有运算,表达式的结果就出来了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询