![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言问题求教!!!!!!!!!!!!!!1
a=1;b=2;c=3;--a&&b++&&c--;++a||b--&&--c;按顺序执行完语句a,b,c的值还是为什么1,2,3答案说:--a&&b++&&c--;a减...
a=1;b=2;c=3;
--a&&b++&&c--;
++a||b--&&--c;
按顺序执行完语句a,b,c的值还是为什么1,2,3
答案说:--a&&b++&&c--; a减1后变为0 后面的都不会去执行了,所以 b和c值不变
++a||b--&&--c; ++a后 a变为1 后面的也不会执行的
可是++的自增优先级比逻辑要高啊 为什么不会先执行自增自减 展开
--a&&b++&&c--;
++a||b--&&--c;
按顺序执行完语句a,b,c的值还是为什么1,2,3
答案说:--a&&b++&&c--; a减1后变为0 后面的都不会去执行了,所以 b和c值不变
++a||b--&&--c; ++a后 a变为1 后面的也不会执行的
可是++的自增优先级比逻辑要高啊 为什么不会先执行自增自减 展开
4个回答
展开全部
--a&&b++&&c--;
虽然++的自增优先级比逻辑高,但由于&&运算是由左到由,当左边表达式不成立就不会再执行右边的语句,所以左边--a执行后a=0,表示左边条件不成立,所以&&右边的语句就不执行。
在这个过程中,即不违背自增、自减运算符优先级比逻辑运算符高,也没有违背&&逻辑与运算符的自左向右运行的规则
虽然++的自增优先级比逻辑高,但由于&&运算是由左到由,当左边表达式不成立就不会再执行右边的语句,所以左边--a执行后a=0,表示左边条件不成立,所以&&右边的语句就不执行。
在这个过程中,即不违背自增、自减运算符优先级比逻辑运算符高,也没有违背&&逻辑与运算符的自左向右运行的规则
展开全部
--a为假,后面是与,必然为假,所以不继续执行
++a为真,后面是或,必然为真,所以不继续
++a为真,后面是或,必然为真,所以不继续
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为逻辑运算处理时,与运算遇到0自动处理为0,不问后面内容,或运算遇到1 时同样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
特别注意 && 当&& 前面不成立时,就不执行后面了; || 前面成立,就不执行后面了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询