当与算术运算符(如+,-等)链接在一起时,前缀运算符与全局变量的行为似乎有所不同
将++glo + ++glo
设置为glo
的表达式2
与本地loc
相比,得出的值不同。
int glo = 2; // global
int main() {
int x;
int loc = 2; // local
x = ++loc + ++loc;
printf("%d", x); // prints 8 as expected
x = ++glo + ++glo;
printf("%d", x); // prints 7
}
答案 0 :(得分:2)
这是UB。您正在同一表达式中执行两个增量。因此,您得到不同的结果。