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 一课开始,再到练习场自己动手 — 不用安装、不用账号,一切在浏览器里跑。