#include void fun(int n, int *p){intf1,f2; if(n==1||n==2)
*p=1; else { fun(n-1,&f1);//main函数里调用的进这个分支了,因为n=3,这时候n-1=2和n-2=1都会进上面的if分支,fun(n-2,&f2);//分别得出f1=1,f2=11+1=2,即*p=2,p是指向s的地址,所以s也为2就是最后的结果
*p=f1+f2; }}main(){ ints;fun( 3 ,&s); printf("%d\n", s );} |