C语言求助 超级简单

来源:百度知道 编辑:UC知道 时间:2024/06/02 19:54:00
#include <stdio.h>
main()
{
int a,b,c,d;
a=8;
b=9;
c=++a;
d=b--;
printf("%d,%d,%d,%d\n",a,b,c,d);

}
运行结果是9899
谁能给我讲解一下呀,谢谢了

初始化 a 是8 b是9

在c=++a 的时候 ++在前面表示 先运算“自加” 再处理其他
因此a变成了 9 再赋值给c
在d=b-- 的时候 是先运行赋值 d=b=9 完成后 再进行“自减”

++/-- a 如果在一整句中表示先运行自加 自减
a ++/-- 如果在一整句中 表示先运行语句 最后在自加 自减

应该是
9,8,9,9
吧?结果是正确的。
a的值在c=++a;处自加了1,因此是9.
同理b的值在d=b--;处自减了1,因此是8.
c的值是a先自加得9后赋给c,d的值是b的值(9)先赋给d后b自加一。

++a表示先把a的值加1,然后再把它赋给C;
b--表示先把b的值赋给d,然后再减1;

(++a,--a都表示先把a的值加1或减1然后在进行其他的操作。而a++,a--都表示先把a的值拿去操作过后再加1.)

所以,c=++a;表示a先加1也就是a现在=9;然后再把a赋值给c,所有c=9;
d=b--表示先把b的值赋给d,然后b自己在减1,即d=9,b=8;

所以最后a、b、c、d分别为;9、8、9、9.

搞清楚++a(--a)与a++(a--)<即问题中的b-->的区别,自然便明白了

++a,在a存储的值上增加1并向使用它的表达式“返回”新的a值,即先对a进行自加运算,再返回自加后a的值;
a++,向使用它的表达式“返回”a的值,再对a加1,即先返回a的值,再进行自加运算。

结合该程序片段,++a是先对a加1,再赋值给c,因此c=a+1=8+1=9;
b--是先将b赋值给d,再对b减1,因此d=b=9。

这不很简单么!
a b, 的值就不用说了,就看C,D
++A的意思是A先自加一,然后再付给C,b--的意思是B先付给D,然后在自减1.所以B得值等于C的值。

++,--结合性从右向左,a自加了1赋给c,所以c=9,b先赋给d后,再自减1,所以a=9,b=8,c=d=9