函数是实现C语言模块化的重要组成部分,正因为不同的功能可以写在不同的函数里,通过函数之间的调用实现功能的叠加。
要点1:在不同函数之间的调用,形参和实参的匹配是从右往左匹配的
要点2:在函数传递参数的时候,如果是变量则不更改原参数的值,若是地址(这里值数组则会更改原数据)
举例说明:
int a = 10; add(a);(add函数的功能为a++);此时如果打印a的值,a仍旧是10.
其主要原因在于被调函数中的值并未修改原参数。
递归思想
递归思想的灵活使用往往能使问题变得非常容易实现,在递归中找到后一项与前几项的关系,从而实现自身的调用,直到到达结束的条件,往往结束的条件是一个明确的结果,然后在回归实现最终的结果。
在递归的过程中使用到栈这一结构。栈在该linux下默认设置的大小为8M,这个默认值可做修改。
a.求和
b.找最大值
c.求月份的天数
d.打印100以内的素数e.斐波那契数列以及前n项和
数组在函数传递的参数时有两种:例如:int a[ 下标 ]表示某个int变量
int a【】在函数传递中一般传递的是该数组空间的首地址。
这也是数组在传递的过程中值被修改的主要原因
练习:
使用函数实现排序
使用函数实现查找
使用函数实现字符串的操作
strlen()
strcpy()
strcat()
strcmp()
作业实现日历的打印: