最近写代码遇到的一个bug是因为在判断语句中错误使用赋值语句导致的。
else if (XXX&& (m = 0))
YYY
结果下面的YYY语句未得到执行。
原因是将语法记错了。
C中的赋值语句的返回值是所赋的值以允许连续赋值语句,Linux的shell中的赋值语句返回值恒为true。

本文解析了一个常见的C语言编程错误:在条件判断中误用赋值语句,导致逻辑错误。通过具体代码示例,阐述了正确与错误的语法区别,帮助读者避免此类常见陷阱。
最近写代码遇到的一个bug是因为在判断语句中错误使用赋值语句导致的。
else if (XXX&& (m = 0))
YYY
结果下面的YYY语句未得到执行。
原因是将语法记错了。
C中的赋值语句的返回值是所赋的值以允许连续赋值语句,Linux的shell中的赋值语句返回值恒为true。


被折叠的 条评论
为什么被折叠?