
main() { int x=4,y=3; int a,b,c; a=(--x==y++)?--x:++y; b=x++; c=y;} } 为什么输出答案是2 2 4
2个回答
展开全部
根据运算符优先级,a=(--x==y++)?--x:++y等价于a=(((--x)==(y++)))?(--x):++y,首先判断x=x-1与y值的是否相等,y+1,若相等,则a=--x(--x先x=x-1,然后用于计算)。此时,x=2,y=4。a=2
b=x++,将x的值赋给b,然后x=x+1,所以b=2,x=3.
c=y,所以c=4。
在写代码的时候,最好将表达式中的不同优先级的计算用括号括起来,这样就不用为优先级问题而烦恼了。
b=x++,将x的值赋给b,然后x=x+1,所以b=2,x=3.
c=y,所以c=4。
在写代码的时候,最好将表达式中的不同优先级的计算用括号括起来,这样就不用为优先级问题而烦恼了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询