条件运算符的错误防范 为什么有人写 if (3 == x) 而不是 if (x == 3)? 这是一种防御性编程技巧,叫做 Yoda 条件表达式(Yoda Condition),目的是让编译器帮你发现将 == 误写成 = 的错误。 int x = 5; // 正常写法 if (x = 3) { } // ❌ 把 3 赋给 x,然后判断 x(=3,非零为真),不会报错,但逻辑错误 // Yoda 写法 if (3 = x) { } // ✅ 编译报错!不能对字面量 3 赋值 这个技巧来自 C 语言时代,现代 C++ 中不太需要了,因为:编译器会发警告:大多数编译器对 if (x = 3) 会发...