当前位置: 代码迷 >> C语言 >> [求助]一个容易混淆的问题
  详细解决方案

[求助]一个容易混淆的问题

热度:101   发布时间:2006-12-26 15:16:36.0
[求助]一个容易混淆的问题
main()
{
int i=3,j=1,h;
h=i+++j;
printf("%d,%d,%d",h,i,j);
}

这个结果怎么算出来 求助!!
----------------解决方案--------------------------------------------------------
h=i+++j;我想应该和h =(i++)+ j;一样吧!
----------------解决方案--------------------------------------------------------
4 4 1

相当于 h=(i++)+j
----------------解决方案--------------------------------------------------------
这个是依赖编译器的,不同的编译器出现的结果可能会不同~

----------------解决方案--------------------------------------------------------
1.h=(i++)+j; vc
2.h=i+(++j);tc
编译器的不同
----------------解决方案--------------------------------------------------------

这个就是编译器的问题了 所以最好不要写这么混淆的东西
而vc中这些算符就是贪心算法来弄的
就是i++已经是能满足语法的最大的字符串了 比i+要长
所以会选择i++


----------------解决方案--------------------------------------------------------
5楼的正解
----------------解决方案--------------------------------------------------------
  相关解决方案