区县重庆三中高中部:printf()运算的优先级?

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 05:52:22
运行一下程序看看,为什么不是按顺序输出第n项,而是这样:
第1项:1
第2项:1
第4项:2
第3项:3
第6项:5
第5项:8
第8项:13
第7项:21
第10项:34
第9项:55
第12项:89
第11项:144
第14项:233
第13项:377
第16项:610
第15项:987
第18项:1597
.....

-----------程序如下-----------------
#include<stdio.h>
void main()
{
int f1=1,f2=1,n=2;
printf("第1项:1\n第2项:1\n");
while(n<=40){
f1=f1+f2;
f2=f2+f1;
printf("第%d项:%d\n第%d项:%d\n",++n,f1,++n,f2);//未懂
}

}

printf 是 先运算, 后输出

运算的中间结果暂存了

也就是 ++n, ++n 执行完了,才输出, 第一个 ++n 结果暂存了

~~~~ 什么啊~ 看不清楚,你可说清楚一点吗~