int x=10,y; y=(x++)+(--x); printf("%d,%d",x,y); C语言运行结果 是10,18;18怎么解释?坐等详解

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 03:07:49
intx=10,y;y=(x++)+(--x);printf("%d,%d",x,y);C语言运行结果是10,18;18怎么解释?坐等详解intx=10,y;y=(x++)+(--x);printf(

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,所以,意义不大.