| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 483 人关注过本帖
标题:第2天 关于运算结果的疑问
只看楼主 加入收藏
zzqfqq1100
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-7-10
结帖率:0
收藏
已结贴  问题点数:10 回复次数:4 
第2天 关于运算结果的疑问
void main()
{
int i=8;
printf("%d\n",++i);
printf("%d\n",i++);
printf("%d\n",-i++);
printf("%d\n",-i--);
}
运算的结果是
9
9
-10
-11
我的理解结果是
9
10
-9
8
我的肯定是错的 谁帮忙分析一下啊 看书看的头好晕 现在还晕
搜索更多相关主题的帖子: 疑问 运算 结果 
2010-07-11 15:17
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:5 
慢慢分析不急:
printf("%d\n",++i);这行不用分析
printf("%d\n",i++);此时i的值为9,而且是i++,所以是先使用i的值之后再自增,,所以输出为9,输出后i的值为10
printf("%d\n",-i++);同上,不过++的优先级和-一样并且是自右向左结合,所以先输出-10之后,i再自增,此时i的值为11
printf("%d\n",-i--);同上,输出-11后,i再自减,此时i的值为10
你要是不信的话,可以再加一行代码:printf(“%d\n",i);
你再看输出的此时的i值是不是10
不过,我没有去做实验,LZ可以试试……


[ 本帖最后由 vs_inzaghi 于 2010-7-11 16:13 编辑 ]

我很懒,但我讨厌别人说我懒……
2010-07-11 15:56
qq181982453
Rank: 2
等 级:论坛游民
帖 子:45
专家分:16
注 册:2010-6-10
收藏
得分:5 
void main()
{
int i=8;
printf("%d\n",++i);表达式++i的值是9,i的值变成了9
printf("%d\n",i++);表达式i++的值是9,i的值变成了10
printf("%d\n",-i++);表达式-i++的值是-10,i的值变成了11
printf("%d\n",-i--);表达式i--的值是-11,i的值变成了10

}
记得给分啊
收到的鲜花
  • zzqfqq11002010-07-11 17:28 送鲜花  3朵  
2010-07-11 16:02
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
另外关于楼主的2个知识点问题(一个是结合方向问题,一个是自增自减问题),以谭浩强《c程序设计》第三版中58页有详细说明,强烈建议楼主看书温习……哈哈……我也要分……
收到的鲜花
  • zzqfqq11002010-07-11 17:28 送鲜花  3朵  

我很懒,但我讨厌别人说我懒……
2010-07-11 16:16
zzqfqq1100
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-7-10
收藏
得分:0 
总结3点:
1 输出的是运算结果 不是i值
2 运算结果绝不等于i值
3 运算结束后自增的不是运算结果而是i值
那个怎么给分的说 我新人不知道有没有分哦

2010-07-11 17:26
快速回复:第2天 关于运算结果的疑问
数据加载中...
 
   



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

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