C语言问题:a=3,b=4,c=5,则逻辑表达式“!(a+b)*c-1&&b+c%2

a=3,b=4,c=5,则逻辑表达式“!(a+b)*c-1&&b+c%2该表达式是什么意思?... a=3,b=4,c=5,则逻辑表达式“!(a+b)*c-1&&b+c%2
该表达式是什么意思?
展开
 我来答
Mirainoe
2015-02-12 · TA获得超过315个赞
知道小有建树答主
回答量:513
采纳率:0%
帮助的人:263万
展开全部
&&是逻辑和,!是逻辑非
!(3+4)*5 - 1 && 4+ 5%2
先算括号里的
!7*5-1 && 4+5%2
!逻辑非运算符的优先级比-运算符高
7转换成bool值是true,运作逻辑非就翻转成false(0)
0*5-1 && 4+5%2
0-1 = -1
true && 4+5%2
%优先级在+前面
5%2 = 1
4+1 = 5
true&&true
&&运算符要两边对象都是true时才会为true
追问
!7用中文怎么说?
为啥!7会等于0?
追答

任何值不为0的对象只要他可以转换成bool值就会被转换为true

这里7转换成bool值肯定就是true了。

!(逻辑非运算符)是反转得到的结果

如果你得到的是true(真)使用逻辑非就会反转成false(假)

比如

scanf("%d",i); //假设有一个int类型的对象i
if(i)    //如果i不为0(false,只有0会转换成false)
//xxxxx
//上面那句话也就说明了只有0(false)才会被逻辑非转换成true
if(!i)  //如果i为0
//xxx
空空2012xxy
2015-02-12 · TA获得超过432个赞
知道小有建树答主
回答量:612
采纳率:0%
帮助的人:624万
展开全部
该表达式为真
更多追问追答
追问
能不能详细解释下前面的!和后面的&&的意思,是怎么判定为真为假的条件?如果把中间的&&换成||又怎么算?
追答
!(a+b) = ! 7 = 0
!(a+b)*c-1= -1
b+c%2=4 + 5%2=4+1=5
(-1)&&(5)=1
(-1)||(5)=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式