这一篇开始进入 C/C++ 进阶提升。相比第一篇的语法入门,这一篇更靠近安全开发真正需要反复复盘的部分:入口函数、调用堆栈、调用约定、指针高级用法、堆内存、文件读写和项目组织。

1、学习定位

第一篇解决的是“能写出 C 语言基础代码”,第二篇要解决的是“能理解程序怎么运行”。

这里的重点不是把语法再背一遍,而是把源码、汇编、栈、堆、指针、文件和项目流程串起来。后面做逆向、调试、内存分析和安全工具开发时,这一篇会经常回看。

2、章节目录

编号 章节 主要内容 笔记
0111 01 入口函数与参数传递 main 参数、调用堆栈、IDA/DBG 回溯、函数声明、分文件、值传递、地址传递、寄存器与线程栈 0111
0112 02 调用栈与函数高级 汇编指令、函数调用堆栈、调用约定、堆栈平衡、宏函数、数组/结构体参数、可变参数、printf 原理、变量内存布局 0112
0113 03 内存管理与指针限定 内存属性探测、void 指针、堆区管理、内存回收、设置内存、const 指针组合、数组寻址、指针运算、多级指针 0113
0114 04 指针进阶、文件与项目实践 指针数组、数组指针、指针函数、函数指针、字符串函数重构、生命周期、静态变量、文件读写、编码处理、控制台项目 0114

3、整理原则

这一篇后续按“源码写法 → 调试观察 → 内存/汇编视角 → 安全边界”整理。每一部分都尽量保留可运行代码和复盘问题,方便之后复试、项目展示和网络安全方向学习。

4、复盘重点

方向 复盘重点
函数 参数从哪里来,返回到哪里去,调用前后栈发生什么变化
指针 指向哪里,是否有效,步长是多少,能否安全读写
内存 栈、堆、全局区、只读区、代码区分别保存什么
文件 文件指针、文本/二进制、读写位置、编码和边界处理
项目 需求拆分、模块划分、数据结构、流程控制和调试验证