求看看这个加法是怎么加的。(语言-c语言)

#include
int main()
{
int a = 2;
int m = (++a) + (++a);
printf("%d",m);

return 0;

}

img

++a两次之后,a变为4,最后m是两个4相加,为8

++a表示先加1再取a的值,a++表示取完值再加1
所以m就等于a先加一(此时a等于3)加上a加一的值(此时a等于4)
最终m等于3+4 a等于4

这种题目没有意义。和编译器有关。我在TDM-GCC 9.2.0上跑的结果是8。在Mingw64上跑出来的是10。