游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3945|回复: 16

[C\C++]谁能告诉我这个表达式是怎么算的??

[复制链接]

6

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2006-7-25 19:59:00 | 显示全部楼层 |阅读模式
int x=1,y=0,k;

k=x-->(y+x)?5:25>y++?'1':'2';

printf("K=%d\n",k);

这个题在C++中的结果和我算的一样:K=49

可是在TC2.0中的结果确是:K=5

我是按照“?:”的从右到左的顺序算的,问题是在TC2.0中怎么等于5呢??

0

主题

1037

帖子

1037

积分

金牌会员

Rank: 6Rank: 6

积分
1037
发表于 2006-7-25 21:40:00 | 显示全部楼层

Re:[C\C++]谁能告诉我这个表达式是怎么算的??

算这个没有任何意义。不要算了。

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2006-7-26 13:46:00 | 显示全部楼层

Re:[C\C++]谁能告诉我这个表达式是怎么算的??

这个题在C++中的结果和我算的一样:K=49
==============================
什么意思?在"C++"中..你敢说在所有的C++编译器中都是49?不要写出这种编译器依赖的代码还自以为很高深,BS!

103

主题

1432

帖子

1458

积分

金牌会员

Rank: 6Rank: 6

积分
1458
QQ
发表于 2006-7-26 14:10:00 | 显示全部楼层

Re:[C\C++]谁能告诉我这个表达式是怎么算的??

表达式项中一般不允许修改另一个表达式项的。

a-- + b + a
在第一个a--项里面,修改了后面出现的 a。

有时候是对,有时候是错,因而最好的做法,还是避免。

4

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2006-7-26 14:54:00 | 显示全部楼层

Re:[C\C++]谁能告诉我这个表达式是怎么算的??

这个会根据编译器不同,你用Turbo C 2.0和用VC6编译运行的结果就会不同。

6

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
 楼主| 发表于 2006-7-26 18:57:00 | 显示全部楼层

Re:[C\C++]谁能告诉我这个表达式是怎么算的??

whb9633,我发这个帖子不是来炫耀的,是来寻求答案的。

这个题目是“全国计算机等级考试二级 C语言” 中的一个选择题。

我在答题的时候选的是“49”,我在不考试的时候一直是用“DEV-CPP”写的代码,结果也是49
可是当我在TC2.0中写出同样代码时,结果却是5。
等级考试中必须使用TC 2.0 。也就是这个题我做错了。

我是按照“? :”运算符的“从右到左”的顺序算的:

1. 先算 “ 25>y++?'1':'2' ” 。结果是‘1’。
2. 再算 “ k=x-->(y+x)?5:‘1’ ”。由于 x-->(y+x)不成立,所以整个表达式的值,也就是K的值应该是 ‘1’,由于K是整型,所以 K=49

但是在 TC 2.0 中,结果却是5。

请问在TC 2.0中,这个表达式是我这么算的吗??

0

主题

1037

帖子

1037

积分

金牌会员

Rank: 6Rank: 6

积分
1037
发表于 2006-7-26 19:11:00 | 显示全部楼层

Re:[C\C++]谁能告诉我这个表达式是怎么算的??

这些无聊的考试,害死人。

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2006-7-26 19:30:00 | 显示全部楼层

Re:[C\C++]谁能告诉我这个表达式是怎么算的??

这种题目根本是扯蛋。
在TC里怎么算确实不知道,你把TC里这个程序编译成汇编,就可以看到怎么算的。像(i++)+(i++)+(i++)+(i++)这种题目也一样,都是编译器依赖的,根本不能算是一个合格的程序员写出来的东西。

5

主题

77

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2006-7-26 22:20:00 | 显示全部楼层

Re:[C\C++]谁能告诉我这个表达式是怎么算的??

下士说的对,这些考试真是没有办法,要合理的运用语言特性,不要写i++ ++ ++i这样的代码

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2006-7-26 22:54:00 | 显示全部楼层

Re:[C\C++]谁能告诉我这个表达式是怎么算的??

全国计算机等级考试二级题目过时的厉害
而且现在还在用TC这种16位编译器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 01:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表