remeke (remeke) · GitHubhttps://github.com/remeke今天学习了函数的递归
递归:程序调用自己的编程技巧叫做递归。
递归存在的两个必要条件:
1、存在限制条件,当满足这个限制条件之后,递归不再继续。
2、每次递归之后越来越接近这个限制条件。
史上最简单的递归
#include<stdio.h>
{
main();
return 0;
}
一直递归不停止会导致栈溢出(stack overflow)
程序员的知乎:Stack Overflow - Where Developers Learn, Share, & Build Careershttps://stackoverflow.com/
例1、:
#include<stdio.h>
void print(int n)
{
if(n>9)
{
print(n/10);
}
printf("%d ",n%10);
}
int main()
{
unsigned int num= 0;
scanf("%d",&num);//1234
print(num);
//print(1234)
//print(123) 4
//print(12) 3 4
//print91) 2 3 4
return 0;
}
例2、计算字符串长度
#include<stdio.h>
int my_strlen(char*str)
{
int count=0;
while(*str!='\0')
{
count++;
str++;
}
return count;
}
int main()
{
char arr[]="bit";
int len=my_strlen(arr);
printf("%d\n",len);
return 0;
}