函数实现之前 先看一个例子
void fun(int i) { if (i > 0) fun(i / 2); printf("%d ",i); } int main(void) { fun(10); return 0; }
输出结果是什么?
这是《c语言深度剖析》中的一个例子 在这个例子中 printf(“%d ”,i);语句是fun函数的一部分 必定执行一次fun函数,就要打印一次。函数展开过程如下:
void fun(int i) { //fun(i/2); if (i > 0) { if (i / 2 > 0) { if (i / 4 > 0) { .... } printf("%d ",i/4); } printf("%d ", i / 2); } printf("%d ", i ); }
是不是清晰很多?
同样的思路 来完成reverse_string(char *string)函数 代码如下:
/*编写一个函数reverse_string(char * string)(递归实现)*/ #include<stdio.h> #include<math.h> void reverse_string(char *string) { if (*(++string) != '\0') reverse_string(string); printf("%c",*(string-1)); } int main() { char *a = "abcde"; reverse_string(a); printf("\n"); return 0; }
时间: 2024-10-07 05:56:04