返回狼盟编程首页
编程搜索 [狼盟旧档]
论坛统计


请输入搜索关键字:
├─◆ 狼盟首页 > 查看贴子 > 详细信息

楼主

调用的函数(-)


main(){ int x=0; sub(&x,8,1); printf("%d
",x);}sub(int *a,int n,int k){if(k<=n)sub(a,n/2,2*k);*a+=k;}为什么结果是7呢,





boxertony [ 1 楼 ]
2006-05-31 23:01:00
sub(int *a,int n,int k){   if(k<=n)      sub(a,n/2,2*k);   *a+=k;}1。第一次进入sub函数:n=8, k=12。第二此进入:n=4,k=23。第三次进入:n=2,k=4,k<=n不满足,*a += k,此时*a = 44。回退到2。 *a += k,此时*a = 4+2 = 65.再回退到1。 *a += k,此时*a = 6+1=7