为什么需要函数?
1.c语言结构化的思想,大问题拆成小问题
2.减少重复劳动,提高效率
函数定义:
返回值的类型说明符 函数名(形式参数1,形式参数2,形式参数3,……)
{
函数体
}
注:
1.返回值类型可以不写,默认int
2.返回值类型说明符与返回的结果类型不一致时,以类型说明符的类型为准
3.写的时候
a.写的时候
int a,int b //对
int a,b //不对
b.用的时候
(1).形式参数 以 实际参数之间
个数相同
类型匹配
一一对应 //第一个实参 就给到第一个形参
4.函数可以定义在main函数之前,也可以定义在main函数之后
如果定义在main函数之后,在使用前,必须要有函数声明
函数声明 => 函数头 加 分号
6.如果函数没有返回值,此时返回值类型说明符 可以写成 void //空 -没有
7.如果函数不需要参数,则形参,可以写成void
递归:
注:
1.函数不支持嵌套定义(一个函数里定义另一个函数)(gnu下支持,c中不支持)
2.函数可以嵌套调用(递归)--直接递归
--间接递归
递归本质上来说就是循环,但是注意不能构成死循环(break,goto,return)
递推2要素:
1.递推关系
2.递推结束条件
例:1~100求和:
sum(100)
|--sum(99)+100
|--sum(98)+99
|--
...
|--sum(3)+4
|--sum(2)+3
|--sum(1)+2
|--1