一个c语言的问题,求大神指教

设a=5,b=6,c=7,d=8,m=2,n=2执行(m=a>b)&&(n=c>b)结果:n的值为2... 设a=5, b=6, c=7, d=8, m=2, n=2
执行 (m = a > b) && ( n = c > b)
结果:n 的值为 2
展开
 我来答
逍遥Pandar
2012-07-19 · 超过29用户采纳过TA的回答
知道答主
回答量:137
采纳率:0%
帮助的人:82.2万
展开全部
a=5, b=6, c=7, d=8, m=2, n=2

此时很显然n=2
(m = a > b)执行顺序是((m = a) > b),所以不成立,&&前一个不成立是不会执行后面的
( n = c > b)

的,所以n还是2
祤光
2012-07-20 · TA获得超过212个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:189万
展开全部
首先你要明确&&的运算符是从左到右运算的,而且&&是作与运算,当2者为真的时候才成立,只要有一个是假的时候就不成立,从左到右,因为a<b所以判断结果是假,所以不用执行后面的判断,n的值没有重新赋值,所以n值是2,做这个要考虑运算符的优先级和运算符的结合性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐酷科技
2012-07-19 · TA获得超过1905个赞
知道小有建树答主
回答量:1067
采纳率:50%
帮助的人:610万
展开全部
a>b为假 &&运算不执行后面的 n=c>b
所以n的值还是2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
245000169
2012-07-19 · 超过21用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:32.1万
展开全部
关系的优先级要比赋值的优先级高,所以先进行a>b运算,关系比较的结果只有1或0,这里的a>b条件不成立所以把0赋值给m,又因为0&&(n = c > b)进行的是“与”运算,所以得到为零时就已经能判断出是假了,所以 ( n = c > b)不执行。书上都有介绍的所以n的值不变为2
更多追问追答
追问
那如果是:1.(m=ab)   2.(n=c>b)&&(m=a>b)的结果是什么
追答
第一题的n=1,第二题的n=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莫紫欣321
2012-07-19 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:240
采纳率:0%
帮助的人:82.5万
展开全部
题中的两个括号里均是关系运算符和赋值运算符,外面是一个‘与’符号连接,‘&&'符号是前表达式为真则计算后表达式,前表达式为假则后表达式不再计算,而对于本题,前表达式a>b为假则值为0,导致前表达式为假,所以后表达式不再计算,则直接为2
追问
那如果是:1.(m=ab)   2.(n=c>b)&&(m=a>b)的结果是什么
追答
第一个值为N=1  第二个N=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式