一个源文件,有多个函数组成,
分类
(通常可以分成标准库函数,自定义函数【按函数类型分类】有参函数,无参函数【按是否含有参数分类】)
函数参数的一般形式:【数据类型】 函数名(【参数】){
执行代码块;
return 表达式;
}
函数调用:
函数名(【参数】)
有两种情况:值调用:仅仅是将实参的值赋予形参,此时形参的值发生改变而实参的值不变
地址调用:函数的形参与实参共享同一存储单元(空间),形参或是参发生变化时,该百年的是存储空间的值。对应的参数值会跟着改变。
-----------------值调用,代码:
地址调用代码:
无论是形参还是实参发生变化,对应的参数都会发生变化
C函数的嵌套调用,C语言不允许嵌套定义,但允许嵌套调用
嵌套调用:在一个函数执行的过程中,调用另一个函数;
在函数f运行的过程中直接调用f函数
函数的间接调用: 函数f1在运行时调用f2;但此时函数f2在运行过程中调用函数f1
重点是递归调用应该是有终止的递归使用if 控制函数的调用次数
即条件成立的时候执行调用函数,否则退出;
递归函数的组成:边界条件(if语句、递归前进段、递归返回段)
当边界条件不满足时,递归前进,当边界条件满足时,递归返回
实例:斐波那契数列
第一第二个数都为1后面每个数都是前两个数的和
f(n) = 1 (n = 1) ; f(n) = 1 (n = 2); f(n) = f(n-1) + f(n-2);