int x=10,y; y=(x++)+(--x); printf("%d,%d",x,y); C语言运行结果 是10,18;18怎么解释?坐等详解
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/14 04:06:58
![int x=10,y; y=(x++)+(--x); printf(](/uploads/image/z/2478916-28-6.jpg?t=int+x%3D10%2Cy%3B+y%3D%28x%2B%2B%29%2B%28--x%29%3B+printf%28%22%25d%2C%25d%22%2Cx%2Cy%29%3B+C%E8%AF%AD%E8%A8%80%E8%BF%90%E8%A1%8C%E7%BB%93%E6%9E%9C+%E6%98%AF10%2C18%EF%BC%9B18%E6%80%8E%E4%B9%88%E8%A7%A3%E9%87%8A%3F%E5%9D%90%E7%AD%89%E8%AF%A6%E8%A7%A3)
xRn@~UHD^ ЧȱUT=,7G
7HH()/>:۪bv~oi途 i{Z"d{x7#{C-ajfmSjka za0hʹ sO.xƙ.rݤv
mןf]PaxQ/]$
".4pA⚂/{uXNy}EXIYC4jbUKiIٗЙ6&xàS
&"n(f(ܻ7؟-8ѷ0
S_MSBx? Y
int x=10,y; y=(x++)+(--x); printf("%d,%d",x,y); C语言运行结果 是10,18;18怎么解释?坐等详解
int x=10,y; y=(x++)+(--x); printf("%d,%d",x,y); C语言运行结果 是10,18;18怎么解释?
坐等详解
int x=10,y; y=(x++)+(--x); printf("%d,%d",x,y); C语言运行结果 是10,18;18怎么解释?坐等详解
这种题不做也罢.
勉强分析一下:
y=(x++)+(--x);
等号右边的先运算,即 先运算 (x++)+(--x); 从左向右顺序运算
x++ 意思是先用x 再x=x+1 ,注意这里是用x而不是用 10这个值 ,因此,到此时,x值还是10
--x意思是先操作 x=x-1,再用x , 此时,x=x-1后,x=9
计算 x+x = 9+9=18
别忘了,前面x++,只用了x, 这时经进行x=x+1=10了
因此,结果会是 x=10 y=18
这种写法与具体的编译器还有关系,实际应用没有人会这样写代码的.纯粹是学术YY,所以,意义不大.