11月去云南带什么东西:我这里有一段c语言的问题,希望得到帮助。

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 00:01:05
int i=5
k=(++i)+(++i)+(i++)
printf("%d,%d",k,i);

上面的结果是 21,8 我明白,k=7+7+7
而下面的结果为 8,20,5 我就不明白了
答案说的中间数据来源为 8+7+5 ,我就更不明白了

int i=5
printf("%d,%d,%d",i,(++i)+(++i)+(i++),i);
就是中间那个数据是怎么来的,请具体一步步地说明。
我用Turbo C for window 试过结果就是 8,20,5
答案没有错。

答案应该是正确的,这个式子要从右边开始算,i++是先引用后加1,++i是先加1再引用,明白不?
例如:
main()
{
int i=0;
printf("i=%d",i++);
}
结果为i=0;

main()
{
int i=0;
printf("i=%d",++i);
}
结果为i=1
就是这样的

结果好象是错的!