c++中 已知a,b,c的值分别为2、5、1,逻辑表达式'0'||(a++)&&(++b)||(c=3)的值是(),a,b,c的值分别是

答案是1,2,5,1为什么啊... 答案是 1,2,5,1 为什么啊 展开
 我来答
匿名用户
2015-12-06
展开全部
'0'||(a++)&&(++b)||(c=3)

相当于

('0') ||  ((a++)&&(++b))  ||  (c=3)

'0'字符对应的ASCII码是48, 48是非0值, 表示true, 于是整个表达式返回true(1)

同时, 或者运算||是短路运算符, 只要||左边的表达式是true值那么为了节省时间就直接返回true而不用计算右边的表达式, 于是后面的(a++)&&(++b)和c=3都没有被执行; 同理&&也是短路运算符, &&左边只要为false就直接返回false而不计算右边的表达式, A?B:C只要A是true就只计算B, 否则只计算C

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式