| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1696 人关注过本帖, 1 人收藏
标题:自加自减表达式的疑问
只看楼主 加入收藏
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
不要再在这些小问题上费时间了。多看书,多练习自然会明白。

由于工作,N久都没来了!
2006-08-12 21:16
天下行
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-8-11
收藏
得分:0 
在visual c++下
若“编译”,“放置可运行配置” 选择“filename.c Win32 Debug"运行结果两个都为25
选择“filename.c Win32 Release"运行结果两个都为18
在TC下运行结果为18 和 30

所以说确实不应该花太多时间在这种问题

2006-08-12 21:58
多维数组
Rank: 1
等 级:新手上路
帖 子:238
专家分:0
注 册:2006-8-16
收藏
得分:0 
以下是引用nuciewth在2006-8-12 19:30:03的发言:
真正编程的时候,谁会这样写

那确实,我是被搞迷糊了.


有事发邮件:tzp_1210@
2006-08-17 10:03
美丽心情
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-3-27
收藏
得分:0 

现在C语言怎么没有一个标准的编译器呢?搞的同样的代码在不同的编译器上结果都不一样


做一名C程序员怎么样?
2006-08-17 11:49
电脑小书虫
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-1-1
收藏
得分:0 

2位老兄,你们算的结果18好象都有问题把。

i=3,J=i++*++i+i--*--i;
应该考虑优先级:J=[(i++)*(++i)]+[(i--)*(--i)]
2个中括号里面应该同时计算,同时从i=3开始计算。


有梦最美,希望相随
2007-01-06 01:19
华夏
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-12-29
收藏
得分:0 

我感觉上面的大水牛说得不一定对
i=3; i++*++i+i--*--i=? /*它在这时是从左到右*/
首先(i++)=3
i=4
在运算(++i)=5
i=5
在(i--)=5
i=4
--i=3
i=3
现在可以运算+了,
(i++)*(++i)+(i--)*(--i)=30

j=i++*++i+i--*--i j=18
这个的原因是编译从右到左 /*在这时双是从右到左*/
先(--i)=2
i=2
i--=2
i=1
(i--)*(--i)=4
++i=2
++i+4=6
i++=3
所以为18
有点乱,好象是这样

所以总不能一会儿向左一会儿向右吧,因为符号的优先级已经定了,那么结合方向也已经确定了,所以我认为不可能出现一会儿向左一会儿又向右的情况,我的解释如下:我再想一下,推敲一下,明天给你回复。


2007-01-06 07:08
华夏
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-12-29
收藏
得分:0 

我感觉上面的大水牛说得不一定对
i=3; i++*++i+i--*--i=? /*它在这时是从左到右*/
首先(i++)=3
i=4
在运算(++i)=5
i=5
在(i--)=5
i=4
--i=3
i=3
现在可以运算+了,
(i++)*(++i)+(i--)*(--i)=30

j=i++*++i+i--*--i j=18
这个的原因是编译从右到左 /*在这时双是从右到左*/
先(--i)=2
i=2
i--=2
i=1
(i--)*(--i)=4
++i=2
++i+4=6
i++=3
所以为18
有点乱,好象是这样

所以总不能一会儿向左一会儿向右吧,因为符号的优先级已经定了,那么结合方向也已经确定了,所以我认为不可能出现一会儿向左一会儿又向右的情况,我的解释如下:我再想一下,推敲一下,明天给你回复。



2007-01-06 07:20
kankanzaishu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-6
收藏
得分:0 
以下是引用大水牛在2006-8-12 15:29:52的发言:

i=3; i++*++i+i--*--i=?<BR>首先(i++)=3<BR>i=4<BR>在运算(++i)=5<BR>i=5<BR>在(i--)=5<BR>i=4<BR>--i=3<BR>i=3<BR>现在可以运算+了,<BR>(i++)*(++i)+(i--)*(--i)=30<BR><BR>j=i++*++i+i--*--i j=18<BR>这个的原因是编译从右到左<BR>先(--i)=2<BR>i=2<BR>i--=2<BR>i=1<BR>(i--)*(--i)=4<BR>++i=2<BR>++i+4=6<BR>i++=3<BR>所以为18<BR>有点乱,好象是这样<BR>




大水牛说的是错的!!

[ 本帖最后由 kankanzaishu 于 2011-9-6 15:40 编辑 ]
2011-09-06 14:47
快速回复:自加自减表达式的疑问
数据加载中...
 
   



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

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