1 //通过递归实现正逆序打印字符串的例子来分析递归三种执行顺序与递归思想的关系,正线,逆线,反值线
2
3
4 //用迭代思想实现的递归,是属于递归正线
5 void printStr1(char* str)//正序打印字符串
6 {
7 if(*str)
8 {
9 printf("%c",*str);
10 printStr1(str+1);
11 }
12 }
13
14 //用递归思想实现的递归,是属于递归逆线
15 void printStr2(char* str)//逆序打印字符串
16 {
17 if(*str)
18 {
19 printStr2(str+1);
20 printf("%c",*str);
21 }
22 }
23
24
25 //逆线包括反值线,反值线是返回值给上一项。
26
27
28
29
30 #include <stdio.h>
31
32 int main(void)
33 {
34 char* str = "12345678";
35 printStr2(str);putchar(10);
36 printStr1(str);putchar(10);
37
38 return 0;
39 }