| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 961 人关注过本帖
标题:有个低级问题请教下
只看楼主 加入收藏
Jfeng
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-8-14
收藏
得分:0 
个人认为先算a>b? 跟着转去算c>d? 得出结果为4
2006-08-14 15:52
多维数组
Rank: 1
等 级:新手上路
帖 子:238
专家分:0
注 册:2006-8-16
收藏
得分:0 
反对楼上的说法,因为这句话中用()控制了优先级,先运算括号里的数

建议重温小学课本......

有事发邮件:tzp_1210@
2006-08-16 14:47
wuyufenjr
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-7-20
收藏
得分:0 
以下是引用jay63323876在2006-8-12 9:16:44的发言:
a>b? a:(c>d? c:d) /*1>2?1:(2>4?2:4)条件运算符是右结合性,先算2>4?2:4得出4,再执行1>2,得4 */
a=1, b=2, c=2, d=4.
那么条件表达式的值就等于4。
请问各位大哥大姐们为什么等于4 阿。请帮小弟详细解释下。谢谢了。(本人初学者)

其实我个人认为条件运算符的结合性先不用管,先执行a>b?如果不满足,再执行c>d?这样可以更省时省力。如果满足的话,就可以不用执行c>d?,更干脆!

2006-08-16 22:35
wuyufenjr
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-7-20
收藏
得分:0 
以下是引用jay63323876在2006-8-12 9:16:44的发言:
a>b? a:(c>d? c:d)
a=1, b=2, c=2, d=4.
那么条件表达式的值就等于4。
请问各位大哥大姐们为什么等于4 阿。请帮小弟详细解释下。谢谢了。(本人初学者)

这里还要考虑括号运算符的优先级,还是要先执行:(c>d? c:d)

2006-08-16 22:37
苍冥绝隐
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-8-10
收藏
得分:0 
电脑是死程序,人脑是活的,
电脑只会一步一个脚印, 人却可以绕个弯求答案
只要答案是对的就行

2006-08-17 13:34
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
电脑也在变活着。编译器也在不断改善.
争议是不必要的,请试一下这个小例子,就知道你们谁对谁错了。
实验是检验真理的唯一标准
#include "stdio.h"
#include "conio.h"
int main()
{
int i=4;
int a=1;
i>1?a++:(a=5);  
printf("%d",a);
getch();
}
如果a值为6,则2楼正确,如果a值为2,则2楼错误。

对不礼貌的女生收钱......
2006-08-17 14:44
haroldi
Rank: 1
等 级:新手上路
帖 子:158
专家分:0
注 册:2006-7-22
收藏
得分:0 

a<b? a:(c>d? c:++d)
a=1, b=2, c=2, d=4.

最后d=?

Do people want thick road ...
2006-08-17 16:58
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 

盡量不要做這樣的實驗.....如果是與編譯器有關的話.
沒有了確定性的程式, 寫還是不寫...?


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-17 17:24
signjing
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-3-24
收藏
得分:0 
2楼分析的很对,7楼的话也很重要!

我的QQ:395812618
2006-08-18 14:30
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用yeshirow在2006-8-17 17:24:04的发言:

盡量不要做這樣的實驗.....如果是與編譯器有關的話.
沒有了確定性的程式, 寫還是不寫...?

关于?:条件运算符ANSIC标准规定只对一边求值,所有的编译器都是按照这个标准来做的,这与编译器无关.
另:2楼的解释是错的。


对不礼貌的女生收钱......
2006-08-18 14:49
快速回复:有个低级问题请教下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020248 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved