1、函数嵌套
2、assert函数
形参表填写逻辑或关系表达式,若为假立即终止程序。
3、函数的特性
函数传递都是值传递,而不是修改内存空间,形参的值是开辟另外一个与实参大小相同的 内存空间并把实参的值复制进去,修改也只是修改形参空间的值,不影响实参。
实质:不能在被调函数中修改主调函数的值
函数传参的顺序自右向左
先打印20,再打印10
不允许在函数传参中对变量进行自增、自减,否则会出现错误
3、从编译器,底层逻辑看函数怎么调用的
主函数执行到函数时会跳转到函数中开始执行,在执行到return后,返回主函数继续执行。
1.栈区
pc寄存器存放将要执行的代码地址
pc进入函数后无法返回函数调用处,就产生了栈
原则:先进后出,后进先出
入栈叫做保护现场,出栈叫做恢复现场
定义的变量、形参储存在栈区
2.堆区
堆区使用需要向操作系统借,使用完需要归还
大小取决于内存条大小
3.函数递归
函数递归:函数直接或间接调用自己本身
间接 直接
无条件的函数自身调用会导致栈区消耗殆尽而程序崩溃
递归计算1~100
1.找不递归的条件
2.结合函数作用写递归条件
计算斐波那契数列
第n个数 前n个和