在C语言中,逻辑运算符||&&都是短路运算符。在表达式--a || --b && c++中,如果--a的结果为真(非零),则不会再计算后面的表达式,因此--bc++都不会执行。

如果--a的结果为假(零),则会继续计算后面的表达式。在这种情况下,--bc++的计算顺序是未定义的,编译器可以自行决定计算的顺序。这意味着--bc++的执行顺序可能是任意的,无法确定先后顺序。

为了避免这种未定义行为,最好将表达式拆分为多个语句,以确保每个语句的执行顺序是明确定义的。

在C语言中在计算 --a--b&&c++;时有先后顺序吗?

原文地址: http://www.cveoy.top/t/topic/hFzz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录