嗨有人可以解釋這段代碼嗎?瞭解遞歸和遞減
#include <stdio.h>
int main(){
void myfunc(int x){
printf (" [%d]",x);
printf ("M here 1\n");
if (x > 0) myfunc(--x);
printf ("M here 2\n");
printf (" %d,\n",x);
}
myfunc(5);
}
輸出到來是:
[5]M here 1
[4]M here 1
[3]M here 1
[2]M here 1
[1]M here 1
[0]M here 1
0,M here 2 [0]
0,M here 2 [1]
1,M here 2 [2]
2,M here 2 [3]
3,M here 2 [4]
4,M here 2 [5]
不過,我被困在如何
0,M here 2 [0]
0,M here 2 [1]
1,M here 2 [2]
2,M here 2 [3]
3,M here 2 [4]
4,M here 2 [5]
是不是應該在
0,M here 2 [0]
'--x'遞減'x' * *前把它傳遞給'MYFUNC()' –
是啊,得到了..但我想知道,X是如何第一次 0後遞增,男這裏2 [0] –
@ notbad.jpeg:'x'無法傳遞給函數! C嚴格按照價值傳遞! – Olaf