[求助]问个小白问题
main(){ int x=5,n;
n=(++x)+(++x);
printf("%d",n);
getch();
}
这个程序,n的值,我怎么算出来是13啊,用TC做出来是14的,晕死...我刚学C不久,还有很多不懂,麻烦告之,谢谢.....
2006-05-23 15:27
2006-05-23 15:51
[此贴子已经被作者于2006-5-23 16:10:40编辑过]
2006-05-23 15:51

2006-05-23 17:45
x先做两次自增为 7 7+7=14
int main(void)
{ int x=5,n;
n=(++x)+(++x)+(++x); //是不是先做三次自增为8, 8+8+8=24. 但结果为22. WHY?
printf("%d",n);
getch();
}
2006-05-23 17:51

2006-05-23 17:55
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,搞定。

2006-05-23 18:03
谢谢7楼,原来是这样.四个就为31了.
int main(void)
{ int x=5,n;
n=(++x)+(++x)+(++x)+(++x);
printf("%d",n);
getch();
}
2006-05-23 18:06
还真有爱钻研的!那我就来说说,为何正解为22而不是24:
C编译器处理表达式
(++x)+(++x)+(++x) 时
分三步走:
1。先完成粗体部分。效果:中间得数14,同时x=7
2。计算红色部分。得到x=8
3。14+8=22,搞定。


我怎么是24啊??


2006-05-23 18:08
2006-05-23 18:12