【发布时间】:2020-04-02 16:55:52
【问题描述】:
#include <stdio.h>
int printArray(a[], unsigned int n){
if (n == 4){
printf("%d", a[4]);
}
else {
printf("%d", printArray(a,n+1)); // here is the error, I know. But why?
}
}
int main(){
int a[5] = {1,2,3,4,5};
printArray(a,0);
}
我是 C 的初学者。我正在尝试打印数组的每个元素,但它只正确打印最后一个元素,而不是前一个元素。我知道递归方式有问题。这是我第一次使用没有返回和使用 printf 的递归方式。也许是这误导了我?
输出:
$ ./a.out
5
0
1
1
0
【问题讨论】:
-
你没有返回任何东西,那么第二个 printf 应该打印什么?