A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© llo 中级黑马   /  2015-7-12 17:12  /  4580 人查看  /  53 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. #include <stdio.h>
  2. int main()
  3. {
  4.       int i=8;     
  5.       printf("++i的值=%d \n++i的值=%d \n--i的值=%d \ni--的值=%d\n",++i,++i,--i,i--);
  6.       return 0;
  7. }
复制代码
为什么输出的结果是 9 8 7 8不理解啊  能详细点????????

53 个回复

倒序浏览
xcode 运行结果是9 10 9 9
回复 使用道具 举报
αメ炫 发表于 2015-7-12 17:39
xcode 运行结果是9 10 9 9

我用c++软件编译的是我发的结果 啊
回复 使用道具 举报
llo 发表于 2015-7-12 17:42
我用c++软件编译的是我发的结果 啊

不同系统、编译器等在处理i=++i+++++i++;都会存在一些差异,你这个地方如果是事实的话,有可能是逗号表达式的运算顺序的差异导致的

xcode 参数列表是从左向右的,你的可能是从右向左计算的
回复 使用道具 举报
αメ炫 发表于 2015-7-12 17:51
不同系统、编译器等在处理i=++i+++++i++;都会存在一些差异,你这个地方如果是事实的话,有可能是逗号表达 ...

从右往左应该是  8 7 6 8  啊
回复 使用道具 举报
#include <stdio.h> int main() {int i=8;        printf("%d\n",++i);  printf("%d\n",++i);  printf("%d\n",--i);   printf("%d\n",i--);  }这样在vc环境中运行的结果是 9,10,9 ,9
回复 使用道具 举报
不知道!!
回复 使用道具 举报
VC6从右向左开始解析。。。   - -vc6是98年的工具 bug太多了。。。现在的编译器都是从左到右开始解析

希望可以帮到你
回复 使用道具 举报
llo 中级黑马 2015-7-12 20:32:07
9#
李博文 发表于 2015-7-12 19:27
VC6从右向左开始解析。。。   - -vc6是98年的工具 bug太多了。。。现在的编译器都是从左到右开始解析

{:5_ ...

嗯,,谢了
回复 使用道具 举报
好吧,如果你用eclipse工具编辑的话,值还不一样。。
回复 使用道具 举报
9,10.9,9新版Xcode的运行结果
回复 使用道具 举报
应该是9 10 9 9
你的结果就有问题。。。
:o
回复 使用道具 举报
什么鬼啊
回复 使用道具 举报
= = 亲娘来,楼上咋学的。别误导楼主了。
我来给你解释。
#include <stdio.h>
int main()
{
    int i=8;
    int j=8;
    int p=8;
    int q=8;
    printf("++i的值=%d \nj++的值=%d \n--p的值=%d \nq--的值=%d\n",++i,j++,--p,q--);
    return 0;
}
这样就是你要的结果了。
你都用变量i,变量i不断变化,后面的结果肯定不是预想的啊。
回复 使用道具 举报
WPeng 中级黑马 2015-7-13 10:50:50
15#
9,10,9,9.应该是这个结果
回复 使用道具 举报
太不严密了,同一个代码,应该同一个结果啊
回复 使用道具 举报
9 10 9 9啊
回复 使用道具 举报
根据谭浩强编的那本书,应该是9,10,9,9。但是不同的编译器,说不定有什么奇葩的bug呢
回复 使用道具 举报
编译器不同的结果吧
回复 使用道具 举报
pacio 中级黑马 2015-7-13 18:46:51
20#
好多人都不建议用自增自减的,真正做开发的时候用的估计也不多,应尽量避免
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马