1.递归函数含义:直接或间接调用了自身的函数,先递推再回归
重点例题:汉诺塔问题的求解
2.内联函数:定义格式:inline <函数体类型> <函数名>(<形参表>){
函数体
} 定义与调用与普通函数是类似的,一般只将规模很小而频繁使用的简单函数声明为内联函数
3.函数重载:一个程序中,可以定义多个具有相同函数名,不同参数列表的函数,编译系统将通过检查函数调用中的实参个数、类型和顺序来选择恰当的函数;
4.变量的作用域和储存类型
局部变量:在一个函数内或符合语句类定义的变量,只允许在其定义的函数或符合语句中使用,离开所在函数或复合语句后将不能使用,也称为自动类型变量,执行完毕后自动释放
全局变量:在所有函数之外定义,可以为所有函数共同使用,在函数中,局部变量优先,如果想使用全局变量,在变量名之前加作用域运算符::即可,如果在定义点之前想使用全局变量,可以在函数中用extern对全局变量进行声明
5.变量的存储类型
堆区 |
栈区 |
全局数码区 |
程序代码区 |
存放动态分布的数据
存放局部数据
存放全局数据和静态数据
存放程序的各个函数的代码
自动变量:用auto修饰,在定义块开始执行时分配空间,执行结束后释放空间
寄存器变量:用register修饰,仅局部变量和形参可作为寄存器变量
静态变量:用static修饰,,若是定义局部变量,具有局部作用域,全局生命期,执行后并不释放,下次调用继续使用;
外部变量:用extern修饰,如果要使用其他源文件定义的全局变量,在使用前应用extern进行声明