post

C/C++ 核心概念学习与排坑记录

围绕指针、内存管理、对象生命周期与编译链接问题的持续学习笔记。

2026/04/06
C/C++ 核心概念学习与排坑记录

内容摘要

C/C++ 核心概念学习与排坑记录 这不是一篇“背语法”的笔记,而是一份围绕指针、内存、生命周期与编译过程的实战理解清单。 一、为什么 C/C++ 总让人又爱又怕? C/C++ 的魅力在于你能直接接触到底层:内存怎么分配、对象怎么构造、程序怎么链接,几乎都摆在你面前。但也正因为离底层太近,很多错误不会“温柔提醒”,而是直接用崩溃和未定义行为教育你。 一句话理解: 学 C/C++,本质上是在学习程序到底是怎样活起来的。 二、指针:能力上限高,容错率也低 2.1 指针和引用到底差在哪? | 对比项 | 指针 | 引用 | | | | | | 本质 | 保存地址的变量 | 现有对象的别名 | | 是否可为空 | 可以,典型值是 nullptr | 不可以 | | 是否能改指向 | 可以 | 不可以 | | 访问方式 | 需要解引用 ptr | 直接像普通变量一样使用 | 如果你只是想“给对象起一个别名”,引用更自然;如果你需要“表达可空、可变目标、动态管理”,指针更灵活。 2.2 悬空指针为什么危险? 函数返回后,local 已经被销毁,但 ptr 还握着那块旧地址。此时程序表面上“还能跑”,但访问结果完全不可预测。 经验提醒: 最可怕的 bug 往往不是“立刻崩”,而是“有时能跑,有时炸”。悬空指针就属于这一类。 2.3 更稳妥的做法 当资源归对象管理时,生命周期会清晰很多,代码也更不...