
fun(6)运行过程中,由于6/2=3>0,所以调用fun(3)
fun(3)运行过程中,由于3/2=1>0,所以调用fun(1)
fun(1)运行过程中,由于1/2=0,所以不会继续往下调用此时,继续运行,
printf("%d",x),此时x=1,输出1,然后返回
上一步返回后,处于fun(3)的运行过程,在fun(3)中继续运行,
printf("%d",x),此时x=3,输出3,然后返回
返回至fun(6),继续运行,输出6,然后回到主函数
因此输出为136
请注意fun是个递归函数,是先做判断3次,再倒着输出x
即,6-3-1-打印1-打印3-打印6
输出结果是:136,这三个数字,不是一百三十六,这段代码一共调用了3次这个函数fun(int x),第一次是6,执行完if后,在执行fun(3)函数,这时不会进行打印语句,第二次是3,执行完if后,再执行fun(1)函数,第三次是if(1/2>0),这时不满足if的条件,转而执行打印语句,由于一共执行了三次这个fun函数,所以要跳出函数体,就执行了三次打印语句,然后fun(6)执行完成,最后打印一个换行,所以就出现了136.
不知道这样解释LZ是否明白。
