怀疑C增量运算符

use*_*ase 0 c pre-increment

可能重复:
c中的post和pre增量

我是C的新手,我在C中有一个Increment运算符程序

#include<stdio.h>
main(){
  int a, b;
  a = 2;
  b = a + ++a + ++a;
  printf("%d", b);
  getchar();
}
Run Code Online (Sandbox Code Playgroud)

输出是10,有人可以解释一下输出将是10.

Kar*_*ath 6

a + ++a + ++a;
Run Code Online (Sandbox Code Playgroud)

此行为未定义.编译器可能会生成将其评估为2 + 4 + 4或3 + 3 + 4的代码,但递增和访问的任何组合/排序都是"有效"结果.