C语言 不理解这个程序结果麻烦高手解释下

2024-12-21 23:59:00
推荐回答(2个)
回答1:

y=++x-1;printf("%d\t%d\t",x,y);//y=(++x)-1,先x自加一,再用自加过的x减一赋给y

没错,每个语句都用前一个的值

另外,前后两个程序应该一样

++x是先取x的值
x++是先x自加,再取值

回答2:

x=y=2;z=3;
y=x++ -1;printf("%d\t %d\t",x,y);
y=++x-1;printf("%d\t%d\t",x,y);
y=z--+1;printf("%d\t%d\t",z,y);
y=--z+1;printf("%d\t%d\t",z,y);

x=y=2,z=3
y=x++ -1;==>y=x-1=1,x=x+1=3
y=++x-1;==>x=x+1=4,y=x-1=3
y=z-- +1;==>y=z+1=4,z=z-1=2
y=--z+1;==>z=z-1=1,y=z+1=2