文章目录
一、函数
1.1 函数概念
概念:是一段含有特定功能的程序代码的自包含单元。
1.2 函数特点
特点:
1)功能性;
功能是一个函数的灵魂,每一个函数都有自己不同的功能
2)通用性:
函数是为了解决某一类问题,而不是解决某一个问题
3)独立性
1.3 函数的好处
函数好处:
1、省去重复代码的编写
2、模块化思想
1.4 函数的分类
函数的分类:
库函数、主函数、自定义函数
1.5 函数的结构
函数的结构:函数头,函数体
函数体:声明部分,功能实现部分
int main()
{
//代码
return 0;
}
1.6 实现自定义函数的步骤
实现自定义函数的步骤:
函数的定义,函数的声明,函数的调用
自定义函数分类:
按有无返回值分为:有返回值与无返回值
按形参和无形参分为:有参数与无参数
二、自定义函数
2.1 函数定义
函数定义:
形式:返回值类型 函数名(参数列表)
{
函数体;
}
说明:返回值类型即是返回的数据的类型
函数名 :符合标识符的命名规则
参数列表 : 数据类型 参数名
注意:如果定义多个参数 ,则需要用逗号分开,并且各自的数据类型不能省略。
2.2 函数的声明
声明的意义:就是为了告诉系统你有这样的一个函数存在
如何声明:
直接将所定义的函数头,放在要声明的位置,后面加分号
声明位置:一般在头文件和主函数之间
注意: 函数如果是在主函数之前定义的,则不需要声明
2.3 函数的调用
输入数据,看现象
得到函数的结果
练习: 1+2+…n;
形式:返回值类型 函数名(参数列表)
int add(int n)
{
int i;
int sum=0;
for(i=1;i<=n;i++)
sum=sum+i;
}
注意:函数如果没有返回值直接写为void,
如果不写函数返回值类型的话,默认为int类型;函数的参数,属于函数内部变量
2.4 递归函数
递归函数:函数自己调用自己
递归函数和循环的区别:
递归函数是自己不断的调用自己,耗内存,
执行效率不高,用来处理一些有规律的事物比较方便
循环变量:节省内存,执行效率高
三、全局变量和局部变量
变量定义的位置:
函数内部、复合语句内部 函数外部
3.1 局部变量
定义的位置:函数的内部,复合语句内部,其中包括函数的形参
生存周期:从变量所在的函数被调用的时候,开始分配的空间到函数结束,同时空间释放。
作用域:变量所在的函数内部
初始值:默认为随机值
3.2全局变量
定义的位置:一般在头文件与主函数之间
生存周期 : 从定义的位置开始分配空间,直到整个程序代码结束,空 间释放
作用域:从定义的位置开始,以下所有的程序都可以对它进行修改和使用
初始值:默认为0
注意:当全局变量和局部变量的变量名一样的时候优先使用局部变量 符合就近原则
四、存储类型的关键字
4.1 auto
auto :修饰局部变量,自动局部变量
一般缺省,默认为auto
4.2 static
static :
修饰全局变量:静态全局变量
一旦用修饰,表示该变量不能被外面文件所使用,只能在本文件内部所使用
修饰局部变量:静态局部变量
初始值默认为0
也是只能在变量所定义的函 数内部使用,从所定义的位置开始,变量开始分配空间,整个程序代码结束,空间释放。
静态局部变量只定义一次,初始化一次,
下一次使用的初始值是上次使用变量的结果
4.3 extern
extern :声明为外部变量
在同一个文件中,声明为外部变量
在同一个函数中,声明为外部变量:
例如 :led.c int a.
要在beep.c使用led里面的a变量,就需要在beep.c 里面把a声明为外部变量