| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1254 人关注过本帖
标题:vc环境中i++问题...
只看楼主 加入收藏
dousao
Rank: 2
等 级:论坛游民
帖 子:228
专家分:58
注 册:2007-11-8
结帖率:75%
收藏
 问题点数:0 回复次数:15 
vc环境中i++问题...
到底一个语句中可以有几个i变量?我是这个意思
比如
i=1;
j=(i++)+(++i)+(i++)
j的值是多少呢?最后i的值多少?
从右算还是从左算?
我从左算的,1+3+3?是么?还是以最后算出的i值为准?
3+3+3?
最后的i值是4?
操.实在不懂...哪位老大解释下,越详细越好.感谢
搜索更多相关主题的帖子: 环境 
2007-11-17 15:50
qiang5219
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-9-10
收藏
得分:0 
j = (i++) + (++i) + (i++)
↓ ↓ ↓
1 3 2

计算i 值的时候,
(i++)输出i 为2
(++i ) 输出i 为3
(i++) 输出i 为 4
2007-11-17 16:20
dousao
Rank: 2
等 级:论坛游民
帖 子:228
专家分:58
注 册:2007-11-8
收藏
得分:0 
最后一个括号里面的值为什么是2?

同行售各专业书籍,全1折,淘宝店:http://maishu.
2007-11-17 16:21
dousao
Rank: 2
等 级:论坛游民
帖 子:228
专家分:58
注 册:2007-11-8
收藏
得分:0 
第一个i变成了2,在第二个括号中变成了3吧?为什么第三个是2呢?

同行售各专业书籍,全1折,淘宝店:http://maishu.
2007-11-17 16:22
岳C
Rank: 1
等 级:禁止发言
帖 子:354
专家分:0
注 册:2007-7-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2007-11-17 16:25
dousao
Rank: 2
等 级:论坛游民
帖 子:228
专家分:58
注 册:2007-11-8
收藏
得分:0 
是不是++i  只是得出++i的总值是3 但是算过后i的值并不加?也就是还是第一步算出的2?所以到第三还是2?

同行售各专业书籍,全1折,淘宝店:http://maishu.
2007-11-17 16:27
symos
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-9-15
收藏
得分:0 
+ 的结合性是左结合。所以从左向右一步步算。
j = (i++) + (++i) + (i++)
↓ ↓ ↓
参与运算的值 1 3 3
运算后i的值 2 3 4

所j=7,i=4.
可是用VC编译运行后得到结果是 j=6,i=4。这是怎么搞的。


[此贴子已经被作者于2007-11-17 16:44:55编辑过]


2007-11-17 16:33
叶柄
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-17
收藏
得分:0 
你可以找《C缺陷与陷阱》看下 应该能解决你的问题;
记得上面说对其操作数求值顺序为定义
2007-11-17 16:40
清风如云
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-23
收藏
得分:0 
++i,i++呢可以这样记忆。i=2
首先若j=++i,i值是自加再传递,所以这之后i,j均为3;
再若j=i++,i值先传递再自加,所以之后i=3,j=2。
不知道这样说,明白么?

希望是勇于实践的未来。
2007-11-17 17:00
清风如云
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-23
收藏
得分:0 
总之,就是遇到++在前的情况,它++优先级高于++前的运算符,++的i的值同样也是变的,而且返回加过之后的值。

希望是勇于实践的未来。
2007-11-17 17:02
快速回复:vc环境中i++问题...
数据加载中...
 
   



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

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