int x,a=2,b=3,c=4;x=++a+b+++c++;为什么x等于10?怎么算都觉得不对,求大神解答
这里需要注意++的前缀和后缀用法的区别:
前缀使用时,如++a,相当于
a = a + 1;因此++a返回的是a自增之后的值;
后缀使用是,如a++,相当于
因此a++返回的是a自增之前的值。
回到这个式子,按照优先级规则以及前面的讨论结果,相当于
x=(++a)+(b++)+(c++)=(2+1)+(3)+(4)=3+3+4=10
也就是说,++a返回的是a自增之后的值,而b++和c++返回的是b和c自增之前的值,所以结果是10。