一、函数
- 函数是用来实现一个功能的。
-
函数的定义:
类型标识符 函数名(形式参数)
{
声明部分
语句部分
} -
1.类型标识符 (返回值的类型标识符)
2.返回值类型 :
若没有返回值,返回值类型是void;
返回值类型不写默认为int;
返回值类型如果和定义的返回值类型不一致,以定义的返回值类型为准。
3.形式参数:函数接收数据的入口。形参与实参匹配顺序在ubunt18.04平台上是从右向左。
- 函数定义的位置:
1.main函数之前
2.main函数之后
-
函数的声明
函数头 + 分号 ,声明放在使用之前。
二、函数的调用
- main是主调函数,main当中调用的函数叫被调函数。
- 在调用函数的时候,会有一个保护现场的操作;调用结束,会有一个恢复现场的操作。而这两个动作用栈来实现。
- 栈用来存放函数的数据,遵循先进后出的原则。Linux系统中,默认栈的大小8M。其大小可以调整。
-
栈的特点:
- 先进后出;
- 存放局部变量,int a;
- 自动申请,自动释放。
-
堆的特点:
- 空间很大;
- 手动申请,手动释放。
-
代码区
-
字符常量区
-
全局区
存放全局变量(静态变量)。
三、函数的嵌套
- 特殊的嵌套是递归。
- 递归的实现是逆着来的,要从第n个开始。
- 要充分了解递推关系,和结束的条件。
- 递归的本质是一个循环。