A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天的作业题做错了,希望有大神帮我解答一下,原题如下
  设int a = 2, b= 3,c ,d ,e, f;执行
c =(a++>=--b);
d =(a ==++b);
e =(a--!=b);
f =(++a>b--);
请问a,b,c,d,e,f的结果是
老师给出的答案是3,2,1,1,0,0 我自己算出来的答案是3,2,2,1,0,0我不明白我自己c怎么算错了,而且我都不知道我其他的 算对了是蒙的还是正确算出来的希望哪位大神能够详细的帮我解答一下,在此谢谢了!

18 个回复

正序浏览
学习学习!
回复 使用道具 举报
我来给你解释一下,首先,自增自减的运算符优先级高于比较运算符,所以先计算自增自减,再判断c =(a++>=--b);a++之后a的值变成3,但这个表达式的值还是2,--b之后表达式和变量的值都变成2,这时候c =(2>=2),条件成立,所以返回1.
注意:在c语言中,任何数值都有真假性,真为1,假为0
回复 使用道具 举报
好好看看,运算符还是相对简单点的.
回复 使用道具 举报
一步一步来  把每一个式子的结论 写出来
回复 使用道具 举报
开眼了
回复 使用道具 举报
赞 人气
回复 使用道具 举报
学习了
回复 使用道具 举报
MTT 来自手机 中级黑马 2015-5-24 21:35:18
12#
我也看看。来自: iPhone客户端
回复 使用道具 举报
c =(a++>=--b);
a++>=--b成立是1,不成立是2.
回复 使用道具 举报
星空眼泪 发表于 2015-5-24 15:24
不是什么大神,我也是在准备进黑马培训。

恩,我是刚来学习没多久,一起努力
回复 使用道具 举报
这是829 发表于 2015-5-24 11:48
谢谢大神,讲解好详细的说。

不是什么大神,我也是在准备进黑马培训。
回复 使用道具 举报
cui0wei0 发表于 2015-5-21 13:50
C = 判断, 那不是1就是0, 怎么可能是2呢?

哦哦,知道了
回复 使用道具 举报
星空眼泪 发表于 2015-5-21 15:39
/*
设int a = 2, b= 3,c ,d ,e, f;执行
// 首先我们知道a++是先运算比较,后加1,--b是先加1,后运 ...

谢谢大神,讲解好详细的说。
回复 使用道具 举报
/*
设int a = 2, b= 3,c ,d ,e, f;执行
// 首先我们知道a++是先运算比较,后加1,--b是先加1,后运算比较,
// 所以表达式就等价于 c = (2 >= 2),应该表达式成立,所以c = 1,a同时变成了3哦
// 只要注意:表达式的结果就两种,为真时,等于1,为假时,等于0
c =(a++>=--b);
// 优先级运算符
1        括号        ()、[]
2        正负号        +、-
3        自增自减,非        ++、--、!
4        乘除,取余        *、/、%
5        加减        +、-
6        移位运算        <<、>>、>>>
7        大小关系        >、>=、<、<=
8        相等关系        ==、!=
9        按位与        &
10        按位异或        ^
11        按位或        |
12        逻辑与        &&
13        逻辑或        ||
14        条件运算        ?:
15        赋值运算        =、+=、-=、*=、/=、%=
16        位赋值运算        &=、|=、<<=、>>=、>>>=
// 因为++b,所以b=3,这个时候a也等于3,所以(3 == 3)表达式成立,d = 1
d =(a ==++b);
// a先比较,表达式(3 != 3)为假,所以e=0,运算后,这时a=2了
e =(a--!=b);
//a先运算再比较,b先比较,后运算,所以表达式(3>3)为假,所以f = 0,同时b = 2
f =(++a>b--);
所以的最后的结果是a=3,b=2,c=1,d=1,e=0,f=0
*/
回复 使用道具 举报
C = 判断, 那不是1就是0, 怎么可能是2呢?
回复 使用道具 举报
晕...我这个也死晕
回复 使用道具 举报
Emma 发表于 2015-5-20 09:31
你百度一下运算符优先级表,然后从最高优先级的符号开始,一个一个的慢慢的运算,希望能采纳 ...

嗯,好的
回复 使用道具 举报
你百度一下运算符优先级表,然后从最高优先级的符号开始,一个一个的慢慢的运算,希望能采纳
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马