搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ [求助]
标题:
[求助]
只看楼主
秋天的果实
等 级:
新手上路
帖 子:36
专家分:0
注 册:2005-3-16
楼主
问题点数:0 回复次数:9
[求助]
有如下
X=1
J=(++X)+(++X)+(++X)
执行完后J的直是多少?为什么不是9即2+3+4=9呢?
还有A+++B等价(A++)+B还是等价A+(++B)为什么?
请详细讲解再此谢过
2005-03-17 17:56
xyj
等 级:
新手上路
帖 子:18
专家分:0
注 册:2005-3-14
第
2
楼
得分:0
理论上来说结果应该是J=4+3+2=9
但是编译器先计算出X的最后值为4,再相加,也就是4+4+4了,所以结果为12
[此贴子已经被作者于2005-3-17 18:08:00编辑过]
岂能尽如人意,但求无愧于心!
2005-03-17 18:02
秋天的果实
等 级:
新手上路
帖 子:36
专家分:0
注 册:2005-3-16
第
3
楼
得分:0
为什么没人理我!!!
多谢大哥指点,但是我没有看懂是什么意思,你能把你的思路说一下么?请原谅小弟的资质驽钝~~ 再此谢过
2005-03-17 18:02
秋天的果实
等 级:
新手上路
帖 子:36
专家分:0
注 册:2005-3-16
第
4
楼
得分:0
还有那一问等价那一个呀?????
多谢大哥指点,但是我没有看懂是什么意思,你能把你的思路说一下么?请原谅小弟的资质驽钝~~ 再此谢过
2005-03-17 18:16
poppylx
等 级:
新手上路
帖 子:367
专家分:0
注 册:2004-9-27
第
5
楼
得分:0
关于第一问
b=(++i)+(++i)+(++i);
他是一个这样计算过程
先计算两个(++i) 这样i=3
表达式变成b=3+3+(++i) // i=3
=>b=6+4; // i = 4
=>b= 10;
现在要去上课了 88
动于心而静如水
2005-03-17 18:36
flyicefire
等 级:
新手上路
帖 子:8
专家分:0
注 册:2005-3-17
第
6
楼
得分:0
回复:还有A+++B等价(A++)+B还是等价A+(++B)为什么?
C编译系统在处理时尽可能多地(自左而右)将若干个字符组成一个运算符(在处理标志符、关键字时也按同一原则处理),所以A+++B等价(A++)+B而不是A+(++B)
2005-03-17 20:29
flyicefire
等 级:
新手上路
帖 子:8
专家分:0
注 册:2005-3-17
第
7
楼
得分:0
呵呵不过我试了一下,在TCPP里时这样的
但在TurboC里是相反的,就是等价于A+(++B)了
所以要看你的编译系统了
2005-03-17 20:49
poppylx
等 级:
新手上路
帖 子:367
专家分:0
注 册:2004-9-27
第
8
楼
得分:0
除非是考试中一般是不可能看到这样的写法的
动于心而静如水
2005-03-17 21:28
mengge
等 级:
新手上路
帖 子:34
专家分:0
注 册:2005-2-10
第
9
楼
得分:0
X=1
J=(++X)+(++X)+(++X)
我想可能是这样的
由于++优先级高于+
所以先进行3次++X
这样X=1就变成X=4这样J=4+4+4=12
2005-03-17 22:09
秋天的果实
等 级:
新手上路
帖 子:36
专家分:0
注 册:2005-3-16
第
10
楼
得分:0
谢谢拉
多谢大哥指点,但是我没有看懂是什么意思,你能把你的思路说一下么?请原谅小弟的资质驽钝~~ 再此谢过
2005-03-18 12:08
10
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-13494-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.998649 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved