| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:问一个小问题
只看楼主 加入收藏
hy1107648
Rank: 2
等 级:论坛游民
帖 子:80
专家分:40
注 册:2010-2-8
结帖率:37.5%
收藏
已结贴  问题点数:20 回复次数:5 
问一个小问题
我在本论坛看到一道题:
    int x=17,y=5;
    x*=x++/--y;
问:x的值是多少??
我用VC做过试验后发现结果与答案一样,都是69。看到一位仁兄的解释为x++/--y就是17/4=4,x*=4就是17*4=68,x在这之后还会自加1,所以是69。看到这里,我发现自己对于--和++的理解不对,以此题为例,我认为x应该在执行x++后立即加1,而不是在整个语句结束之后加1,我知道自己的这种理解是错的,所提请教各位如何理解当作后缀的--和++。在我看过此题之后,我觉得作为后缀的--和++在其变量参与完与其自身有关的所有运算之后立即减1或加1,以此题为例,程序在执行完x++后,因为x还要参与乘法,所以不会立即加1,而是在语句结束之后加1。如果程序改为int a=1,x=17,y=5; ,由于x只参与x++的运算,所有x在x++后立即加1 。我的理解正确吗??请各位不吝赐教。谢谢~
                                                   a*=x++/--y;
搜索更多相关主题的帖子: 如何 
2010-08-29 19:48
hy1107648
Rank: 2
等 级:论坛游民
帖 子:80
专家分:40
注 册:2010-2-8
收藏
得分:0 
如果程序改为int a=1,x=17,y=5; a*=x++/--y; ,由于x只参与x++的运算,所有x在x++后立即加1 。我的理解正确吗??请各位不吝赐教。谢谢~
2010-08-29 19:52
c类文盲
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2010-8-29
收藏
得分:5 
  看见你的问题,我也有个问题。计算完“x++/--y”以后,“=”左边的x的值不会发生改变吗?  我是个新手,随便问问,不好意思啊!
2010-08-29 20:45
bianlin
Rank: 1
等 级:新手上路
帖 子:15
专家分:6
注 册:2010-5-22
收藏
得分:5 
相当于a=a*(x/y-1);即a=4,x=18
2010-08-29 22:58
hdjpyb32t
Rank: 2
等 级:论坛游民
帖 子:10
专家分:12
注 册:2010-8-29
收藏
得分:5 
完全看不懂  谁教一下  或者留个言  也行
2010-08-30 00:47
S_12s
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:110
专家分:670
注 册:2010-7-21
收藏
得分:5 
这应该是运算符优先级的问题;首先++、--、=是自右向左运算,(即先算=右边,再算左边),/是自左向右;现在我们先算=右边,先取x=17,--y后,再算x/y=4,这样整个式子就化成了x*=4++,因为常量是不可以进行++运算的,所以++运算是x*=4后,再x++
2010-08-31 15:39
快速回复:问一个小问题
数据加载中...
 
   



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

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