# C-Code **Repository Path**: dengbin1970/c-code ## Basic Information - **Project Name**: C-Code - **Description**: C - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-26 - **Last Updated**: 2025-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 纯手打 ### 一、学习资源 【C语言程序设计从入门到进阶【[比特鹏哥c语言2024完整版视频教程](https://www.bilibili.com/video/BV1Vm4y1r7jY/?share_source=copy_web&vd_source=a30f0d59866cd1fe91de0a8bf8a5e7fa)】(c语言基础入门c语言软件安装C语言指针c语言考研C语言专升本C语言期末计算机二级C语言c语言】 ``` git clone https://gitee.com/bitpg/bit-c-code.git ``` ### 二、学习方法 1.要练习,敲代码 语法、编程思维 2.学会画图,画画理解内存,理解指针 理清思路、辅助理解 3.学会调试 理解感知代码 ### 三、问题与解决 #### 001 scanf函数报警告 ![{306A8832-C47A-4FB3-A7ED-FB87ECEED650}](README.assets/{306A8832-C47A-4FB3-A7ED-FB87ECEED650}.png) ```c #define _CRT_SECURE_NO_WARNINGS#define _CRT_SECURE_NO_WARNINGS //放开头 ``` ```c //一劳永逸-vs安装路径 newc++file.cpp的文件 //在vs工程创建立的新的.c或者.cpp文件的时候,都是拷贝newc++file.cpp这个文件 //没有权限,拉到桌面修改 ``` #### 002 Stack overflow && 函数栈帧的创建和销毁 ![屏幕截图 2024-10-16 203750](README.assets/屏幕截图 2024-10-16 203750.png) 栈溢出 ``` 函数栈帧的创建和销毁--------------非常重要 ``` [函数栈帧的创建与销毁(超详解)](https://blog.csdn.net/qq_61635026/article/details/124384367?fromshare=blogdetail&sharetype=blogdetail&sharerId=124384367&sharerefer=PC&sharesource=m0_59728074&sharefrom=from_link) #### 003 递归层次太深,造成栈溢出 ![image-20241017212024912](README.assets/image-20241017212024912.png) ``` 那如何解决上述的问题: 1. 将递归改写成非递归。 2. 使用 static 对象替代 nonstatic 局部对象。在递归函数设计中,可以使用 static 对象替代 nonstatic 局部对象(即栈对象),这不仅可以减少每次递归调用和返回时产生和释放 nonstatic 对象的开销,而且 static 对象还可以保存递归调用的中间状态,并且可为各个调用层 所访问。 ``` ![image-20241017213028262](README.assets/image-20241017213028262.png) ``` 栈区、堆区、静态区 ``` QQQ