C 语言中与 (&&) 和或 (||) 运算符的短路运算

此篇笔记来源于下边的这个题目。

本来以为结果为 3,但是实际跑了一下发现结果是 1。请教了一下大佬知道了这叫做或运算符(||)的短路运算。

正常来说,或运算中只要有一个为真,结果就为真。所谓或的短路运算就是说,如果已经出现了真,那么后续的运算就不会进行了。以上面的题目为例就是,因为第一个 ++x 这个运算结果肯定为真,那么后面的另外两个 ++x 就不会运行。

类似的,还有与(&&)的短路运算。正常来说,与运算中必须所有均为真,结果才为真。所以与的短路就是,如果前面的运算结果已经有假了,那么就可以确定这个与运算总体的结果为假,也就不会运行后边的运算了。