0
我想向後打印一個整數數組,並檢測到使用++而不是「startPos + 1」結果時會失去數組的第一個元素。我調試瞭解這個問題,但遞歸工作很奇怪。你能解釋一下問題是什麼嗎?非常感謝你。printBackward遞歸不使用operator ++打印數組的第一個元素
#include <stdio.h>
#define SIZE 10
void printBackward(const int[], const int size, int startPosition);
int main(void)
{
const int a[SIZE] = {1,3,5,7,9,10,13,15,17,19};
printBackward(a,SIZE,0);
puts("");
}
void printBackward(const int a[SIZE], const int size, int startPos)
{
if(startPos < size)
{
printBackward(a,size,++startPos); // work wrongly with ++startPos
//printBackward(a,size,startPos + 1); // work properly
printf_s("%4d",a[startPos]);
}
}
使用'startPos ++'代替 –
@RedAlert這將導致無限遞歸。 – interjay