1、函数参数
(1)实参向形参的数据传递是“值传递”,单向传递,只能有实参传给形参。函数的形参相当于实参的复制,对形参进行修改不会对实参产生影响。
(2)无法在被调函数中修改主调函数的参数。
c语言中函数传参是值传递,函数传参方向是自右向左
3.栈(数据结构)
先进后出,后进先出(FILO)
栈区
形参和局部变量都保存在栈区
栈区空间有限,Linux空间8M
windows(1M)
(1)栈区(定义指针标量,指向堆区)
(2)堆区(向操作系统申请,用完归还,手动申请和销毁)
(3)字符串常量区(开辟独立的内存空间装载字符串常量)
(4)静态区(全局区)
(5)代码区
4.函数的递归调用
含义:函数直接或间接调用函数自己本身,有两种形式
间接递归:f(1)--> f(1)
直接递归: f(1)-->f(2)-->f(2)-->f(1)
递归是循环的第五种表达形式,(无条件)的递归会导致栈区空间消耗殆尽造成程序崩溃
递归调用会消耗大量内存空间(禁止对单片机使用递归作为循环表达)