递归调用原理不懂?求高手解答
											#include<stdio.h>age(int n)/*这是这个函数调用原理不懂每次到这里我就掐壳了*/
{
int c;
if (n == 1)
c = 10;
else
c = age(n - 1) + 2;/*这里是怎么执行的*/
printf("%d\n",c);
return (c);
}
int main()
{
printf("%d", age(5));
}
 2014-12-29 00:41
	    2014-12-29 00:41
  
 2014-12-29 09:52
	    2014-12-29 09:52
   2014-12-29 13:56
	    2014-12-29 13:56
   2014-12-29 14:53
	    2014-12-29 14:53
   程序代码:
程序代码:
/* 不使用string.h 反转字符串*/
#include <stdio.h>
/* 计算字符串长度 */
int strLen(char *p) {
    int len = 0;
    while(*(p + len) != '\0') {
        len++;
    }
    return len;
}
/* 循环反转交换值 */
void reverse(char *p, int len) {
    char t;
    int i = 0;
    while(--len > i) {
        t = *(p + i);
        *(p + i) = *(p + len);
        *(p + len) = t;
        i++;
    }
}
/* 递归反转交换值 */
void foo(char *p, int len) {
    char t, *pt = p;
    if(--len > 0) {
        t = *pt;
        *pt = *(pt + len);
        *(pt + len) = t;
        foo(++pt, --len);
    }
}
/* 直接反转打印不交换值 */
void revprt(char *p, int len) {
    while(--len >= 0) {
        printf("%c", *(p + len));
    }
    printf("\n");
}
int main(void) {
    char str[] = "ASCII_string: abcde\n1 2 3 4 5";
    int len = strLen(str);
    puts(str);
    reverse(str, len);
    puts(str);
    foo(str, len);
    puts(str);
    revprt(str, len);
    return 0;
}
										
					
	
 2014-12-30 20:30
	    2014-12-30 20:30