c++中 已知a,b,c的值分别为2、5、1,逻辑表达式'0'||(a++)&&(++b)||(c=3)的值是(),a,b,c的值分别是
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询