main() { int x=0; sub(&x,8,1); printf("%d\n",x); } sub(int *a,int n,int k) { if(k<=n)submain(){ int x=0;sub(&x,8,1);printf("%d\n",x);}sub(int *a,int n,int k){ if(k<=n)sub(a,n/2,2*k);*a+=k;}怎麼会有x

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/20 05:46:07
main() { int x=0; sub(&x,8,1); printf(

main() { int x=0; sub(&x,8,1); printf("%d\n",x); } sub(int *a,int n,int k) { if(k<=n)submain(){ int x=0;sub(&x,8,1);printf("%d\n",x);}sub(int *a,int n,int k){ if(k<=n)sub(a,n/2,2*k);*a+=k;}怎麼会有x
main() { int x=0; sub(&x,8,1); printf("%d\n",x); } sub(int *a,int n,int k) { if(k<=n)sub
main()
{ int x=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int *a,int n,int k)
{ if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
怎麼会有x=x+k=0+4=4,

main() { int x=0; sub(&x,8,1); printf("%d\n",x); } sub(int *a,int n,int k) { if(k<=n)submain(){ int x=0;sub(&x,8,1);printf("%d\n",x);}sub(int *a,int n,int k){ if(k<=n)sub(a,n/2,2*k);*a+=k;}怎麼会有x
你是问为什么会有x=x+k=0+4=4这个结果吗?
这是一个递归
你先顺着函数顺序走下去,
第一环*a即x=0,n=8,k=1
k