**2022/9/11**
2022/9/11
温故知新
*左值:可寻址的非只读表达式(可修改),通俗的讲,左值就是能够出现在赋值符号左面的东西。 *continue语句 跳过循环的剩余部分(结束本次循环),立即重新开始新一轮循环 *break语句 跳出循环体{},执行循环体外的代码
C++第五章 函数
5.3全局变量和局部变量
*全局变量:不对全局变量进行初始化,C++将其初始化为0。全局变量在主函数main()运行之前就开始存在,全局变量在全局数据区(存放全局变量和静态变量const),全局变量一旦定义后就在程序的任何地方可知。
*局部变量:①局部变量在函数内可见,在栈区被分配空间,函数退出时,局部变量随即死亡。②局部变量没有默认初始化,若其不被显式初始化,则内容不可预料(可能是一个很大的数)
5.4函数调用机制
*栈是一种数据结构,工作原理类似于上弹,最先装的最后射出。
5.5静态局部变量
*static 局部变量→静态局部变量
①静态局部变量存放在全局数据区,函数结束时,静态局部变量未消失,它始终驻留在全局数据区中,直到程序运行结束。
②若不为其显式初始化,则C++自动为其初始化为0。显式初始化:手工给予初值,否则为隐式初始化,将内容设置为默认值。
5.6递归函数
*递归函数:自调用函数,在函数内部直接或间接地调用自己,即函数地嵌套调用是函数本身。
①被调函数中保护了调用函数的运行环境和返回地址,使得调用函数的状态在被调函数运行返回后完全恢复。
②被调函数和调用函数的栈空间相互独立,因此两者互不影响。
③递归函数无条件地调用函数自己,造成无限制递归,最终栈空间将溢出。
5.7 重载函数
*函数名可相同,提高函数复用性。
*函数重载的满足条件:
①同一作用域(全局作用域)
②函数名相同
③函数参数类型不同 或者 个数不同 或者 顺序不同。
int abs(int);
long abs(long);
double abs(double);
abs(-10);
abs(-1000000);
abs(-12.23);
重载函数不能仅仅是返回类型不同。
void abs(int)
int abs(int)

浙公网安备 33010602011771号