test.(c/cpp)
#include <stdio.h>
int main(int argc, char** argv)
{
int a = 0, b = 0;
printf("a = %d, b = %d\n", a, b);
b = (++a)--;
printf("a = %d, b = %d\n", a, b);
return 0;
}
如果我将上述内容保存为.cpp文件,它会在执行时进行编译并输出以下结果:
a = 0, b = 0
a = 0, b = 1
然而,如果我将它保存为.c文件,就会出现以下错误:
test.c:7:12: error: lvalue required as decrement operator.
< p>在(newValue)--
操作之前,(++a)
操作不应该被解决吗?有人对此有什么见解吗?
b = (++a)--;
是否属于未定义行为呢? - LihOa
的递增是在其评估之前进行排序的? - Andy Prowlb = a + 1
呢? - Gaurav Agarwal