C优先级问题!!

时间:2008-05-12 11:48:18   来源:论坛整理  作者:  编辑:chinaitzhe
怎么也拐不过弯儿来了

int X=1,Y=2,Z=3;
Z =X>Y? X: Y 得多少?

过程是怎么个顺序,迷糊了!谢谢解答!

网友回复:
C/C code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





Z  = ( (X>Y)?(  X):(  Y) );




网友回复:
6

C/C code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/







// 1. X > Y

//    false



// 2. 因为false所以执行  Y

//    Y变成3



// 3. Z  = 3

//    Z 是 6







= 的优先级别 低于 ? :
cond ? expr1 : expr2 有求值顺序。其中 cond 首先求值,然后根据结果,选择 expr1,expr2中的一个求值。


网友回复:同意上述解。。。习题课后有一题一样的题目。。
// 1. X > Y
// false

// 2. 因为false所以执行 Y
// Y变成3

// 3. Z = 3
// Z 是 6

网友回复:楼主,你这是折腾自己,没一点实用价值。
没必要关注这样牛角尖的问题。
真正编程的时候多写几个括号,对自己对别人都好。
网友回复:同意楼上
网友回复:楼上的人们说的对
网友回复:感觉刚学习的研究这些比较多。
网友回复:Z = ( (X>Y)?( X):( Y) );

网友回复:有收获
网友回复:Z = ( (X>Y)?( X):( Y) );
http://blog.csdn.net/qiuqiu173/archive/2007/12/04/1917279.aspx
网友回复:这个先判定x>y吗若是哦大于就输出 x若不大于就输出 y
然后再是z=z ( x)或z=z ( y)
网友回复:结果是6吧
网友回复:6,感觉老师比较会出类似的题目来考我们对优先级理解
网友回复:6,感觉老师比较会出类似的题目来考我们对优先级理解
网友回复:楼主是否初学者
运算符的优先级问题
C的运算符优先级表很长,,,,,,不过其实很轻易记
一目 > 二目 > 三目 > 赋值
记住上面这句话,
以后楼主发达了别忘了我啊

分析Z =X> Y? X: Y
赋值最后 ===> Z = 后面的 X>Y? X: Y
分析 X>Y? X: Y
三目运算 X>Y? ===> 否 ====> Y ====> 3
最后 Z = 3
END。



网友回复:楼上的口诀有用
网友回复:还是看下书管用~···
网友回复:我觉得是2啊
z=z x>y? x: y;
优先级:=14 ?:13 2 >6
所以z=((z x)>y? x: y)
与15楼理解不一样,忘指教
网友回复:15楼分析的很好
答案是6
网友回复:6
关键字:优先级,问题,

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面