一、函数递归调用:函数直接或间接调用本身;
例:void fun(void)
{
fun();
}
上例就是一个递归调用,但该调用会导致程序运行时陷入死循环,程序会崩溃。
相关补充:
*上例陷入死循环原因就是:函数每次调用都需要往栈里存返回地址,栈的空间是有限的,所以由于死循环导致栈空间耗尽,从而造成程序运行崩溃。
*由于函数递归调用每次都要入栈出栈操作,所以导致程序运行效率较低,所以循环操作最好用几种循环结构来写。
*指针大小与硬件有关,cpu有8位、16位、32位、64位,对应n根地址总线,那么指针大小对应就是n/8字节。
*数组参数传递需要两个参数:数组首地址、数组长度。
*字符数组参数传递只需要传首元素地址。
接下来看看两个函数编写练习:atoi与itoa(即字面意思字符转整型,整型转字符)
自学嵌入式第十二天(4.28)
于 2025-04-28 18:13:35 首次发布