int x,a=2,b=3,c=4;x=++a+b+++c++;为什么x等于10?
intx,a=2,b=3,c=4;x=++a+b+++c++;为什么x等于10?怎么算都觉得不对,求大神解答...
int x,a=2,b=3,c=4;x=++a+b+++c++;为什么x等于10?怎么算都觉得不对,求大神解答
展开
2个回答
展开全部
这里需要注意++的前缀和后缀用法的区别:
前缀使用时,如++a,相当于
a = a + 1;
return a;
因此++a返回的是a自增之后的值;
后缀使用是,如a++,相当于
int tmp = a;
a = a + 1;
return tmp;
因此a++返回的是a自增之前的值。
回到这个式子,按照优先级规则以及前面的讨论结果,相当于
x=(++a)+(b++)+(c++)=(2+1)+(3)+(4)=3+3+4=10
也就是说,++a返回的是a自增之后的值,而b++和c++返回的是b和c自增之前的值,所以结果是10。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询