void main() { int x=4,y; y=(++x)+(++x); printf("%d",y); } y的值为什么是12?不是11吗

void main(){int x=4,y;y=(++x)+(++x);printf("%d",y);}y的值为什么是12?不是11吗
2024-12-02 14:59:55
推荐回答(3个)
回答1:

这个问题主要与运算符的优先级有关的,我debug了一下。

所以说应该是两个括号先执行了,然后x的值变成了6。然后又执行了x+x最后的出的结果是12.

回答2:

y=(++x)+(++x); //++ 在加运算之前执行,++X在4的基础上+1变为5,再次++运行变为6,

回答3:

存在一个优先级问题 , ++x的优先级高于 +
先进行+1后进行使用 两次全部加完以后才进行使用,
即x=6后才进行相加
等于12