logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

第21篇 C语言内存函数

C语言标准库提供了一系列用于直接操作内存的函数,它们与处理字符串的函数(如strcpy)有本质区别。内存函数操作的对象是内存块,而非以'\0'结尾的字符串。memcpy: 用于内存块的复制。它从源地址开始,向后复制指定数量的字节到目标地址。memmove: 同样用于内存块复制,但其核心特性是能够安全地处理源内存块与目标内存块重叠的情况。memset: 用于设置内存块的内容。它将指定内存区域的前若干

文章图片
#c语言
内功心法:函数栈帧的底层推演与本质解析

局部变量为何随机?因为函数栈帧创建时,只会开辟空间(sub esp),而不会主动清零(除非调试模式下填充0xCC这片空间里残留的,是上一次使用后留下的“尘埃”,故而内容随机。参数如何传递?通过压栈。在call指令之前,实参从右至左依次被拷贝并压入调用者的栈帧中。返回值如何带回?通过寄存器。对于内置类型,计算结果通常存放在eax寄存器中,由被调函数带回,主调函数再从eax中取走。

文章图片
#c语言
第十三篇 函数递归

本文介绍了递归在C语言中的核心概念与应用。递归是通过函数自调用将大问题拆解为相似小问题的编程方法,必须具备终止条件和接近终止条件两个要素。文章通过阶乘计算和数字逐位打印两个案例,详细分析了递归的"递推"与"回归"执行过程,并对比了递归与迭代的优劣。特别指出递归在斐波那契数列计算中存在的冗余问题,建议递归层次浅时使用,层次深或重复计算多时改用迭代。最后推荐了青

文章图片
#c语言#学习
到底了