**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) //error

posted @ 2022-09-12 11:08  _玄  阅读(43)  评论(0)    收藏  举报