一.函数的声明和定义
//函数的声明和定义
#include<stdio.h>
int add(int x,int y);
//函数的声明
//形参的名字可以省略
int main()
{
int a = 10;
int b = 20;
int sum = add(a, b);
printf("%d\n", sum);
return 0;
}
int add(int x, int y)
{
return x + y;
}
代码中的“int add(int x,int y);"即为函数的声明,有函数的声明后,函数即可放在main()函数的后面并且编译器不会警告说add函数未定义。
函数的声明:
1.告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但具体是不是存在,函数声明决定不了。
2.函数的声明一般出现在函数的使用之前。要满足先声明后使用。
3.函数的声明一般要放在头文件中的。
函数的定义:
函数的定义是指函数的具体实现,交代函数的功能实现。
二.函数递归
1.什么是函数递归:
程序调用自身的编程技巧称为递归
递归作为一种算法在程序设计语言中广泛应用,一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的的规模较小的问题来求解。
递归的主要思考方式在于:把大事化小
2.递归的两个必要条件
- 存在限制条件,当满足这个限制条件的时候,递归便不再继续。
- 每次递归调用之后越来越接近这个限制限制条件。
#include<stdio.h> void print(int x) { if (x > 10) { print(x / 10); } printf("%d ", x % 10); } int main() { int x= 0; scanf("%d", &x); print(x); return 0; }
并不是所有的问题都适合用递归来解决,比如斐波那契数列。