递归函数的两个必要条件:
1. 存在限制条件,当满足这个条件时递归不再继续;
2. 每次递归调用之后越来越接近这个限制条件。
练习2:
编写函数,求字符串长度。
法1:非递归
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int my_strlen(char *str) {
int count = 0;
while (*str != '\0') {
count++;
str++;
}
return count;
}
int main() {
char str[20] = "bit";
printf("%d\n", my_strlen(str));
return 0;
}
法2:递归
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int my_strlen(char *str) {
if (*str != '\0') {
return 1 + my_strlen(str + 1);
}
else {
return 0;
}
}
int main() {
char str[20] = "bit";
printf("%d\n", my_strlen(str));
return 0;
}