求教一道指针题!!
sub(int *a,int n,int k)
{if(k<=n) sub(a,n/2,2*k);
*a+=k;}
main()
{int x=0;
sub(&x,8,1);
printf("%d\n",x);}
输出结果是什么?
请详细写出解题思路,万分感谢!
参考答案:7
x作为累加器,将其地址传如子函数.
自函数的功能是:
如果k<=n 递归调用,否则把k加入累加器
sub(int *a,int n,int k)
{if(k<=n) sub(a,n/2,2*k);
*a+=k;}
main()
{int x=0;
sub(&x,8,1);
printf("%d\n",x);}
输出结果是什么?
请详细写出解题思路,万分感谢!
参考答案:7
x作为累加器,将其地址传如子函数.
自函数的功能是:
如果k<=n 递归调用,否则把k加入累加器