C语言基础自增自减运算

来个高手指点下,这段程序是不是本身有问题?
算出来的结果为什么是错的?
希望可以详细的解说一下!
#include <stdio.h>
void main()
{
int a,b,c;
b=5;c=5;
a=++b+c--;
printf("%d,%d,%d\n",a,b,c);
a=b---c;
printf("%d,%d,%d\n",a,b,c);
a=-b+++c;
printf("%d,%d,%d\n",a,b,c);
}
这段程序运行出的结果为:
11,6,4
2,5,4
-1,6,4
我想了十几分钟越想这个结果越不对!
其中第一个输出a=++b+c--
那么b应该是5+1=6,b的结果是6
c应该是c-1=4 ,c的结果为4
那么a=++b+c--其运算和a=6+4相同
输出结果应该为:
10
而上面的为11
这是为什么啊?
第一个输出结果中的6和4我可以理解可以那个11我是想不明白啊!
非常谢谢下面几位的回答可以我还是没搞懂,我是刚开始学C语言的,不过这个难关没法往下学!
我再看下视频,在线等!再次加分,我把全部的分都用上!
第一个输出结果搞懂了,是先算b=b+1,再算a=b+c,最后再算c-1!
结果为11,6,4是正确的!
第二个和第三个输出结果如果说b和c的结果为第一个运算所给的数的话,第二个输出结果:2,5,4
我只能明白5,4其中的我不明白为什么会输出2!
第二个输出结果搞懂了,可是又卡在第三个输出结果上了!
不明白-1这个数,如果说b和c都是第一个运算式所给出的值的话,那么第三个输出结果中的6和4很好明白,就是这个-1有点让人摸不着头脑?
希望有好心人帮我过了这个难关!
第三个运算式a=-b+++c
其运算顺序为:a=-(b++)+c ,a=-b+c,b=b+1
如果此时b和c的值是第一个运算式所给出的值的话,那么b=6,c=4所运算出的结果不可以为-1

第1个回答  2009-09-08
毫无意义的试题!!
完全与现实脱离!!
而且这好像是跟编译器有关的!!
第2个回答  2009-09-07
是11没错,c--表示先用c的初值再进行自减。
++b表示先在初值上加1再用
第3个回答  2009-09-08
a=++b+c--
就是b先自增为6,c加完后自减为4,此时还是5.那a就是6+5=11,b为6,c为4.
a=b---c
就是b此时为5,输出时为4,a就是5-5=0,b为4,c为5.
a=-b+++c
-负和++为同一个优先级,b此时为5,计算后为6,a就是-5+5=0,b为6,c为5.
第4个回答  2009-09-08
说实话,我答不出来,需要看书。

这是我们现在计算机课程的试题吗?这种脱离实际的题真是让人无语啊。谁要是在我带的项目里这样编码,我要骂死他,立马给我改成正常人能看懂的东西,不改就去卷铺盖。

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网