求大神指点C语言1||0&&0是1因为断路,但是0&&1||1为什么也是1,不会断路么?我用的是VC

 我来答
White_MouseYBZ
2018-10-24 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6340万
展开全部
1||0&&0——因为&&的优先级比||高,所以1||0&&0等效为1||(0&&0),由于1已经为真,确定了整个表达式的值为1,所以||右边没有必要计算了(俗称‘短路’了)。
0&&1||1——同样因为&&的优先级比||高,所以0&&1||1被等效为(0&&1)||1,由于()中的结果是假,后面又是||,所以整个表达式的值并没有确定(||两边任意一边为1则为1),所以还要计算||右边的表达式。
这个所谓“短路”问题使很多初学者纠结。不能硬背啊,要看分表达式能否确定整个表达式的值,能确定就被“短路”了,否则就不能被短路。比如把0&&1||1这个表达改成1&&1||1,由于1&&1已经为真,||右边是真是假都左右不了整个表达式为1的事实了,所以表达式就被||“短路”了。
捣蒜大师Edison
2018-10-24 · TA获得超过2963个赞
知道大有可为答主
回答量:3825
采纳率:77%
帮助的人:1294万
展开全部
优先级是在短路之上的呀。&&比||优先级高。
1||0&&0就是1||(0&&0),嗯1||什么都是1,所以就是1,()里的什么东西都不用算了。
0&&1||1是(0&&1)||1,前面0&&1是0,0||什么,还得算后面的,然后就是0||1结果是1。
--------------------------------------------------------------------------------------
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式