函数声明:告诉编译器有一个函数叫什么,参数是什么,返回类型是什么,但是具体存不存在,无关紧要
2、函数的声明一般在函数使用之前,需要先声明在还用。
3、函数的声明一般放在头文件中
递归:自己调用自己
把大型复杂问题层层转化为一个与原问题相似的规模较小的问题来解决,只需要少量程序就可以解出问题答案,大大减少代码量:递归:大事化小
递归必要条件:
1、存在限制条件,当满足这个限制条件后就不再继续
2、每次递归调用后越来越接近这个限制条件
递归的一个简单例子,输入一个整数分别打印出每位数
#include
<stdio.h>
void print(
int x)
{
if (x > 9)
print(x/10);
printf(
"%d ", x% 10);
}
int main()
{
unsigned
int num = 0;
scanf(
"%d", &num);
print(num);
return 0;
}
思路:先调用,在执行调用之后的代码,从最后调用(条件不满足后)之后开始执行之后的代码
#include
<stdio.h>
#include
<string.h>
int my_strlen(
char* arr)
//定义了一个变量去计数
{
int count;
whlie(*arr !=
'\0')
{
count++;
arr++;
}
return count;
}
int my_strlen(
char* arr)
//当不用定义变量去计数时i,就可以使用递归
{
if (*arr !=
'\0')
return 1 + my_strlen(arr + 1);
else
return 0;
}
int main()
{
char arr[] =
"hello";
/*printf("%d\n", strlen(arr));*/
int len = my_strlen(arr);
printf(
"%d", len);
return 0;
}