C语言里,int a=5,b;b=++a*--a;求a。

要在VC里运行的,答案是25啊,我想知道为什么啊?

正确答案为 25,++ 和--的运算级比*的 要高,所以先运算++a和--a
然后再 相乘;++ --是二级运算符,*是三级运算符 ,所以 先++a 为6,a现在为6;接着--a,a现在为5;接着相乘 就是5*5 所以答案为 25. 不相信 可以是程序
#include<stdio.h>
main()
{ int a=5,b;
b=++a*--a;
printf("%d",b);

}追问

“先++a 为6,a现在为6;接着--a,a现在为5;接着相乘 就是5*5 ”
为什么不是6*5啊?

追答

因为a 先开始为六
在六的基础上 --a 就为5了 所以a就为5 因为 a只有一个 所以a当前值就是5;他们两用的是一个a比如 你 定义了一个空间 这个空间 只能放一个数,先开始 空间里的数加一 ,接着你又让空间里的数减一,空间里的数 又变回去了 然后 你在用空间里的数 做算术,答案不就是a*a了 是 先把a的运算做完,在做算术运算 也就是a++完直接 做--a 这样同一个a 好好想想就明白了

追问

有点了解了

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-11-25
整型变量a的值为5。
计算过程:
a初值为5,经++a运算后值为6,接着--a,值自减1得5,即a=5,随后a*a得25并赋值于b,所以b=25。
所以,a的值为5。
第2个回答  2011-03-20
++a是先自增 ++a a=6 --a a=5 最后a=5 b=25追问

++a不就是6嘛,--a不就是5,++a*--a是不是=(++a)*(--a),不就是6*5了啊?

追答

++运算符优先级高于*所以 ++a a=6 --a a=5 a最后的值就是5 就变成5*5啦

追问

怎么变的啊?感觉成a*a了,还是不明白

第3个回答  2011-03-20
a=5,b=25
先做(++a),a为6.然后(--a),a为5,然后相乘,得b为25追问

答案是25,不过5*6=30啊.还有啊,这是要在VC上运行的

第4个回答  2011-03-20
b=30

C语言里,int a=5,b;b=++a*--a;求a。
正确答案为 25,++ 和--的运算级比*的 要高,所以先运算++a和--a 然后再 相乘;++ --是二级运算符,*是三级运算符 ,所以 先++a 为6,a现在为6;接着--a,a现在为5;接着相乘 就是5*5 所以答案为 25. 不相信 可以是程序 include<stdio.h> main(){ int a=5,b;b=++...

int a=5,b;则执行表达示b=++a*
假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。

C语言,int a=5;b=++a *--a;为何是25?能否分解讲解一下
由以上可知:a开始时赋值为5,先算--a,此时内存中的变量a的值为4,再算++a,此时内存中的变量a的值为5,最后算*,即5*5,所以结果为25。

一个C语言问题:a=5;b=++a*--a;问吧b等于多少? 答案是25,不知道是为什么...
b=++a*--a 同时在"*"左右进行自增减,所以最终a的值没有,在进行"*"运算时再次取a的值,所以得到25。

一个C语言问题:a=5;b=++a*--a;问吧b等于多少? 答案是25,不知道是为什么...
b==++a(a=6)*--a(a=6-1)b=25

假如a=5,那么b=++a* --a b为多少 c=a++*a-- c为多少...求详细解答 C语...
b=++a --a 这有运算优先级的,首先++a,a=6,此值这里使用,--a,a=5,此值使用,接着:b=5*5=25;c=a++*a-- 同上,++的运算优先级高,执行a++,a=6,此时不使用6,这里还是使用5,a--,a=4,这里不使用,a还是5,结果:c=5*5=25 ...

在C语言中, int a=5,b; b=(++a)+(++a); 输出后为a=7,b=14这不合常
++a的运算优先级比较高,所以先计算两个++a,然后执行加法;第二题X++,是先右边值赋值给Y,但是会先执行括号左边的X++,变成了6,然后再执行右边单独的x

c语言里,如果定义int a=5;那么++a*--a最后的得数是多少呢?
答案是 25 ;由于++、- -优先级均比*的高,所以在计算的时候,先是++a,得a=6,再--a得a=5,最后算a*a=25;

问下为何在C语言中,设a=5,则++a*--a=25?
看到这个第一眼确实有点难,但是仔细看看就知道。这个语句运算有自加和自减,自加和自减都在a的前面,所以是先执行自加和自减运算确定a的值后再算这个运算式,自加和自减后a的值还是5,所以是25。

int a=5; b= a++, c= a++;结果
int x,a,b,c;x = (a = 5, b=a++,c=++a,456,789);\/\/肯定先从括号中开始算起。\/\/a刚开始等于5 \/\/b=a++,++运算在后,先算后加,先把a的5给b,然后把a加1,此时b为5,a为6 \/\/c=++a,++运算在前,先加后算,因为上一个式子a已经是6了,所以a再加1,变成7,再给c,...

相似回答