[求助]问个小白问题
main(){ int x=5,n;
n=(++x)+(++x);
printf("%d",n);
getch();
}
这个程序,n的值,我怎么算出来是13啊,用TC做出来是14的,晕死...我刚学C不久,还有很多不懂,麻烦告之,谢谢.....
[此贴子已经被作者于2006-5-23 16:10:40编辑过]
int main(void)
{ int x=5,n;
n=(++x)+(++x)+(++x); //是不是先做三次自增为8, 8+8+8=24. 但结果为22. WHY?
printf("%d",n);
getch();
}
还真有爱钻研的!那我就来说说,为何正解为22而不是24:
C编译器处理表达式
(++x)+(++x)+(++x) 时
分三步走:
1。先完成粗体部分。效果:中间得数14,同时x=7
2。计算红色部分。得到x=8
3。14+8=22,搞定。