首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

小疑点,求解

2012-05-29 
小问题,求解!#include stdio.hvoid main(){int i5,j5,t,pp(i++)+(i++)+(i++)printf(p%d,i%d\n,

小问题,求解!
#include <stdio.h>
void main()
{
  int i=5,j=5,t,p;
  p=(i++)+(i++)+(i++);
  printf("p=%d,i=%d\n",p,i);
  t=(++j)+(++j)+(++j);
  printf("t=%d,j=%d\n",t,j);

}
这里的结果t=22,求解答。我算的是21,不知道为什么!

[解决办法]
C-Free 5.0 下运行结果:t = 22
[解决办法]
cb2010下t=24,这个计算应该与具体的编译器有关
cb2010的计算顺序应该是
j = j + 1;
j = j + 1;
j = j + 1;
t = j + j + j;
如果结果为21,计算顺序应该是
j = j + 1;
t = j;
j = j + 1;
t += j;
j = j + 1;
t += j;
如果结果为22,计算顺序应该是
j = j + 1;
j = j + 1;
int tmp = j + j;
j = j + 1;
t = j + tmp;

热点排行