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

这个程序很怪,怎么执行和调试,得到得结果不一样呢?谁能帮我解释一下。

楼主networkhunter(土豆土豆我是地瓜)2006-05-02 14:25:32 在 C/C++ / C语言 提问

#include   <stdio.h>  
  int   func(void)  
  {  
  static   int   counter=1;  
  return     ++counter;  
  }  
   
  int   main()  
  {  
  int   answer;  
  answer=func()-   func()*   func();  
  printf("%d\n",answer);  
  }  
   
  在不同的编译器中answer=func()-   func()*   func();这个表达式中func()的执行顺序不是一样的,我在VC下执行的,  
  问题1:我在VC中执行,执行和调试的结果居然是不一样的。执行的时候是-10,单步调试的时候得到的结果是-170。  
  问题2:我用调试器到底怎么才能知道func()的执行顺序? 问题点数:10、回复次数:7Top

1 楼chenhu_doc(^0^纯一狼^0^ 看书看到大笑,直到不能自已)回复于 2006-05-02 14:47:32 得分 7

#include   <stdio.h>  
  int   func(void)  
  {  
  static   int   counter=1;  
  return     ++counter;  
  }  
   
  int   main()  
  {  
  int   answer;  
  answer=func()-   func()*   func();   //   no   confuse....   from   left   to   right..    
  printf("%d\n",answer);  
  }  
   
      func()-   func()*   func()  
      2                 3               4      
   
  Top

2 楼chenhu_doc(^0^纯一狼^0^ 看书看到大笑,直到不能自已)回复于 2006-05-02 14:49:28 得分 2

问题1:我在VC中执行,执行和调试的结果居然是不一样的。执行的时候是-10,单步调试的时候得到的结果是-170。  
    ////   我单步调试没有任何问题呀。。   用f10在外层函数。。。   f11到内层函数。。。。  
   
  Top

3 楼chenhu_doc(^0^纯一狼^0^ 看书看到大笑,直到不能自已)回复于 2006-05-02 14:50:14 得分 1

int   func(void)  
  {  
  static   int   counter=1;     //notice   the   popouse   of   'static'  
  return     ++counter;  
  }Top

4 楼feny911(春韭秋菘)回复于 2006-05-02 14:55:03 得分 0

老纠缠这种问题有什么意义?  
   
  楼主的问题和   a   =   ++i   -   ++i   *   ++i;有什么区别?  
  Top

5 楼niatclock(豆豆雅)回复于 2006-05-02 18:02:36 得分 0

我在VC编译系统中执行结果也是-10,没有发现有异样结果Top

6 楼avicut()回复于 2006-05-02 22:37:19 得分 0

同意feny911意见,这种问题没有什么意义,实际编程时谁要写成这样,等着炒鱿鱼吧Top

7 楼networkhunter(土豆土豆我是地瓜)回复于 2006-05-03 00:37:57 得分 0

你们多说错了,这个问题还是有一定意义的。Top

相关问题

关键词

得分解答快速导航

  • 帖主:networkhunter
  • chenhu_doc
  • chenhu_doc
  • chenhu_doc

相关链接

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

广告也精彩

反馈

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