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/05/17 21:27:23
main(){intx=0;sub(&x,8,1);printf("%d\n",x);}sub(int*a,intn,intk){if(k<=n)submain(){intx=0;sub(&x,8,1

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