CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

老题重提

楼主mufengsoft(不懂浪漫)2003-12-04 17:48:08 在 C/C++ / C++ 语言 提问

请给出以下代码输入的结果  
  #include<iostream.h>  
  #include<stdio.h>  
  void   main()  
  {  
        int   i=10;  
        int   k=10;  
        printf("%d,%d,%d,%d",++i,--i,i++,i--);  
        cout<<++i<<--i<<i++<<i--;  
  }  
  问题点数:0、回复次数:6Top

1 楼kpsh(kpsh)回复于 2003-12-04 17:57:54 得分 0

10,9,10,10  
  10,9,9,10  
  Top

2 楼abitz(阿奈)(老婆永远是对的!)回复于 2003-12-04 18:06:55 得分 0

这跟编译器评估表达式的顺序有关。  
  不过一般的编译器都是从右到左评估的。  
  vs.net上两个都是  
  10   10   9   10Top

3 楼zhengguoshan(坚持-决不放弃)回复于 2003-12-04 18:57:40 得分 0

10,9,10,10109910       这个输出结果。  
   
  Top

4 楼byyyyy(苦行僧【苦】)回复于 2003-12-04 19:09:47 得分 0

和你的编译器有关系,一般都是从右往左。Top

5 楼glacierrr(冰河纪的怪鸟)回复于 2003-12-04 20:30:34 得分 0

c++   gotchas   陷阱14:求值顺序不确定  
  函数对多个参数求值的顺序不固定,int   i   =   12;  
  int   &ri   =   i;  
  int   f(int,   int);  
   
  int   results   =   f(i,   i   *=   2)  
  可能是f(12,   24),可能是f(24,   24);  
   
  子表达式也一样  
  a   =   p()   +   q();  
  可能在q之前调用p,可能相反。  
   
  编译器厂商可以自由决定具体如何实现Top

6 楼kpsh(kpsh)回复于 2003-12-04 21:02:22 得分 0

取决于编译器  
  类似的  
                    int   a=1,b=2,c;  
  c=a+b+   ++b;  
  cout<<c<<endl;Top

相关问题

  • 老问题重提。。。
  • 老问题重提--关于CListCtrl
  • 唯一登陆问题(老问题重提)
  • 菜鸟问题重提
  • 旧事重提,文件复制问题
  • :旧事重提,文件复制问题
  • 重提:Access图片存取问题。
  • 户口问题——严重提问!!!
  • 重提运行路径问题
  • 重提eclipse使用本地javadoc问题

关键词

  • include

得分解答快速导航

  • 帖主:mufengsoft

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo