1.函数是什么?
执行特定功能的一段代码。具有相对的独立性
2.库函数
常用的库函数有
IO函数
字符串函数
字符函数
数学函数
。。
3.自定义函数
(1).函数名
(2).参数
a.实参:实际传递给函数的参数。实参可以是常量,变量,表达式,函数等
无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传给形参
b.形参:形参是指函数定义中声明的变量,用于接收实参;形参只有在函数被调用的过程中才实例化(分配内存单元),
形参当函数调用完成之后就自动销毁了,因此形参只有在函数中有效
(3).返回类型
(4).函数体(函数里的具体代码,这个才是最重要的)
4.函数调用
(1).传值调用:函数的形参和实参分别占有不同内存块。对形参的修改不会影响实参
(2).传址调用:传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式;
这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量
5.函数可以嵌套调用,但是不可以嵌套定义
6.函数的声明和定义
算法1:递归
递归:函数调用自身的编程技巧称为递归
递归的核心思想就是把大事化小(先递下去,再回归)
注意点:
递归的两个必要条件
(1).递归存在限制条件,当满足这个限制条件的时候,递归就不再继续
(2).每次递归调用之后越来越接近这个限制条件
迭代:
其基本意思是反复进行某个过程,每次使用上一次的结果作为新一轮的输入,以逐步接近目标或解决问题;
在编程中,迭代通常指的是使用循环结构(如for循环或while循环)重复执行一段代码,直到满足特定的条件。循环是迭代,迭代不是循环
*/
//%u ---->unsigned int(打印无符号的整数)
//%d ---->int(可以打印正负数)
//%p ----->打印地址
/*示例4.sizeof和strlen的区别
#include <stdio.h>
#include <string.h>
int main()
{
int len1 = strlen("abcdef");//没算上\0
int len2 = sizeof("abcdef");//算上了\0
printf("%d\n", len1);//6
printf("%d\n", len2);//7
return 0;
}
*/