C++ 文章与指南
简短、说人话的讲解,代码就在页面上跑。新指南持续增加。
★ 现代 C++ 路线图(C++11 → C++23)
基础过关了就从这里开始:auto、范围 for、智能指针、lambda,再到 concepts、ranges、modules —— 每项都有新旧写法对照。
★ 七课入门课程
变量、判断、循环、数组、函数、指针 —— 按顺序来,每课都有可运行代码和配套练习。
递归:去掉神秘感
边界条件、调用栈、汉诺塔,以及怎么把递归改写成循环。
C++ 函数:完整图景
参数、返回值、作用域,以及为什么按值传参改不了调用方。
C++ 数组:完整图景
内存布局、为什么从 0 索引、开多大、滚动最大值模式,以及那些不会自我宣告的 bug。
不讲数学的 Big O
O(1)、O(n)、O(n²)、O(log n) 各是什么,用会自己数步数的循环讲清楚。
char[] 与 std::string
C 字符串到底是什么:隐藏的 '\0' 终止符、strlen 为什么存在、strcpy 溢出,以及 std::string 修好了什么。
什么是 int main()?
每个程序都需要的入口:两种标准签名、返回值的用途(现场跑一个退出码 42 的),以及 void main() 为什么是坑。
C++ for 与 while 循环
什么时候用哪个 — cin 哨兵演示、break/continue、表头多分号的陷阱,以及可运行的 FizzBuzz。
while 循环详解
条件、循环体、更新:倒计时、啃数字、哨兵读入与 while (cin >> x) — 外加死循环的解剖。
数据类型:int、double、char、bool
每种类型存什么、怎么坏 — 溢出、浮点误差、'a' 与 "a"、bool 打成 1/0 — 外加面试爱考的字符算术。
注释的正确用法
// 与 /* */、不可嵌套陷阱、被注释代码为何会烂掉 — 以及"解释为什么而不是做什么"的金规则。
为什么 7 / 2 等于 3
整数除法是截断不是四舍五入。规则、%、正确的转换顺序、负数行为,以及它惹出的三种 bug。
++i 与 i++
都加一 — 但表达式本身取回哪个值?跑一遍看结果,搞清它何时多一次拷贝,以及著名的双重自增未定义行为。
传值、传指针、传引用
拷贝与地址:看一个函数改不动它的参数、swap 经典、数组为何总是退化,以及三者的选择规则。
cin >> 与 getline()
为什么你的字符串输入是空的:残留回车陷阱用可运行代码复现,一行修复,以及防复发的心智模型。
10 大编译错误解读
expected ';'、was not declared in this scope、链接器 undefined reference 等报错的实战手册 — 各是什么意思、怎么修。
栈与堆
变量到底住在哪:亲眼看局部与全局的生命周期跑起来,然后是 new/delete、RAII 和两个著名翻车现场。
struct 与 class
唯一真正的区别是一个默认值(公有 vs 私有)— 精确规则、真实代码库的惯例、继承默认值的追问。
C++ vector 与 array
C 数组、std::array、std::vector:真正要紧的区别、"默认用 vector"的经验法则,以及面试追问。
在 Windows / Mac / Linux 上编译运行
每个系统 10 分钟装好免费编译器、值得从第一天就用的 g++ 命令、"编译 → 链接"到底在干什么、人人会踩的安装坑。
15 道初学者面试题
指针与引用、传值、const、栈与堆 — 简短到能说出口的答案,配可运行示例。
刚入门?
从逐行讲解的 Hello World 一课开始,再到练习场自己动手 — 不用安装、不用账号,一切在浏览器里跑。