1.函数:
1.函数避免重复性代码
2.函数让代码模块化
1.1 函数的三种形式:
1.函数的定义
1.函数先定义再使用
2.函数定义的形式:
函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, 数据类型3 形式参数3, ..)
{
函数体;
return 返回值;
}
函数类型:函数运行结果的类型(函数返回值与函数类型不匹配时,强制将返回值转换为函数类型后返回、函数类型不写默认为int类型)
函数名:函数的名字(要求与变量名要求一致)
注意:
1.函数类型不写,默认为int类型
2.如果不想返回结果,函数类型需要写成void类型
1.2 函数的调用
1.函数调用形式:
函数名(实参1, 实参2, 实参3, ..);
注意:
1.函数调用时实参个数必须与形参个数一致
2.如果实参类型与形参类型不匹配,那么会将实参类型强制转换为形参类型传入到函数中
主调函数:主动调用函数的函数
被调函数:被调用的函数
1.3 函数的声明
被调函数在主调函数的下方定义,需要将被调函数声明
函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, 数据类型3 形式参数3, ..);
2.变量的作用域及生存周期:
存储类型 数据类型 变量名;
作用域:变量能够使用的范围
生存周期:从变量被分配空间一直到空间被回收的整个过程
全局变量:作用域在全局均可以使用
局部变量:作用域在局部范围可以使用
2.1 存储类型:
1.auto(默认)
自动型变量(局部变量)
int num;
auto int num;
局部变量作用域在该变量定义最近的大括号内,超过大括号范围不能使用该变量
局部变量:
1.未经初始化值为随机值
2.执行到变量定义时为变量开辟空间
3.超过变量作用域回收变量空间
2.register
寄存器变量
如果寄存器存满了,则将变量存放在栈区中等价于auto类型
3.extern
外部存储
声明一个变量是外部存储的变量
声明外部存储的函数
定义:之前变量是不存在的,定义该变量为变量分配内存空间
声明:之前变量是存在的,声明该变量的类型,同时声明变量是存在的
4.static
静态变量
1.修饰变量,让该变量称为静态变量
1.未经初始化值为0值
2.在编译时分配内存空间
3.程序执行结束回收空间
2.限定变量或者函数只能在本文件中使用
3.防止多文件全局变量函数重名
3.函数的传参:
3.1 值传递(复制传递、赋值传递)
实参将值传递给形参
函数体内想使用函数体外部变量值的时候
3.2.全局变量传递
3.3 整形数组的传递
int a[5] = {1, 2, 3, 4, 5};
int fun(int array[], int len);
注意:
数组传参,函数体内可以按照函数体外的方式操作数组