#include <stdio.h>
void prints(char *p){
if(*p != '\0') prints(++p);
if(*p != '\0') printf("%c",*p);
}
int main(void){
char p[] = "hello";
prints(p);
printf("\n");
return 0;
}
程序運行結果如下:
F:\test>gcc -g -o test.exe test.c
F:\test>test.exe
olle
輸入結果少了h,不理解為什麼,求大神幫忙解釋一下,在此跪謝!
這樣就ok了,因為如果++p在先,下面一行打印的就是當前字符的下一個字符
void prints(char *p){
if(*p != '\0') printf("%c",*p);
if(*p != '\0') prints(++p);
}