函数assert
原型void assert (scalar expression)
assert函数意义为中止,形参为输入逻辑或关系运算符,如果为假,则中止程序;为真,则继续执行(需要头文件#include <assert .h>)
C语言中所有函数传参都是值传递
函数的形参相当于实参的复制品,只是将值传递过去,并没有将实参的内存空间拷贝给形参,C语言会给形参单独设置内存空间。
c语言中默认的函数传参都是自右向左,不可能同时传参
验证:
函数的嵌套调用(本质上是函数的跳转)
函数跳转之后,为了使其能回到原来的地方,内存空间为其开辟了栈区
栈(栈区):专门用来保存函数中的形参和变量
入栈:先进后出,出栈:后进先出
除了栈区之外的具有保存功能的区域
函数允许嵌套使用,先调用函数需先返回,后调用函数需后返回
保护现场:保护调用的函数
恢复函数:函数回到原来的位置
函数的递归调用
即函数直接或间接调用自己本身
无条件直接调用本身函数,会导致栈区空间被用尽,导致系统崩溃
函数递归调用应用
求和:
汉诺塔