C语言里,int a=5,b;b=++a*--a;求a。
答案:4 悬赏:20
解决时间 2021-03-25 03:50
- 提问者网友:沉默的哀伤
- 2021-03-24 11:44
C语言里,int a=5,b;b=++a*--a;求a。
最佳答案
- 二级知识专家网友:孤独的牧羊人
- 2021-03-24 12:47
正确答案为 25,++ 和--的运算级比*的 要高,所以先运算++a和--a
然后再 相乘;++--是二级运算符,*是三级运算符,所以 先++a 为6,a现在为6;接着--a,a现在为5;接着相乘就是5*5所以答案为 25.不相信 可以是程序
#include
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好好想想就明白了
追问:有点了解了
然后再 相乘;++--是二级运算符,*是三级运算符,所以 先++a 为6,a现在为6;接着--a,a现在为5;接着相乘就是5*5所以答案为 25.不相信 可以是程序
#include
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楼网友:从此江山别
- 2021-03-24 15:50
a=5,b=25
先做(++a),a为6.然后(--a),a为5,然后相乘,得b为25
追问:答案是25,不过5*6=30啊.还有啊,这是要在VC上运行的
先做(++a),a为6.然后(--a),a为5,然后相乘,得b为25
追问:答案是25,不过5*6=30啊.还有啊,这是要在VC上运行的
- 2楼网友:想偏头吻你
- 2021-03-24 15:00
++a是先自增++aa=6--aa=5最后a=5b=25追答
追问:++a不就是6嘛,--a不就是5,++a*--a是不是=(++a)*(--a),不就是6*5了啊?
追答:++运算符优先级高于*所以 ++aa=6--aa=5 a最后的值就是5就变成5*5啦
追问:怎么变的啊?感觉成a*a了,还是不明白
追问:++a不就是6嘛,--a不就是5,++a*--a是不是=(++a)*(--a),不就是6*5了啊?
追答:++运算符优先级高于*所以 ++aa=6--aa=5 a最后的值就是5就变成5*5啦
追问:怎么变的啊?感觉成a*a了,还是不明白
- 3楼网友:一袍清酒付
- 2021-03-24 14:07
整型变量a的值为5。
计算过程:
a初值为5,经++a运算后值为6,接着--a,值自减1得5,即a=5,随后a*a得25并赋值于b,所以b=25。
所以,a的值为5。
计算过程:
a初值为5,经++a运算后值为6,接着--a,值自减1得5,即a=5,随后a*a得25并赋值于b,所以b=25。
所以,a的值为5。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |