C语言逗号表达式中 (a=3*5,a*4).a+5 的算法

 我来答
受灵希J
2019-06-26 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.2万
采纳率:33%
帮助的人:860万
展开全部
(a=3*5,a*4).a+5
应该是
(a=3*5,a*4),a+5

逗号表达式注意两个基本知识:
1.
逗号表达式的运算顺序是从左向右运算
2.
逗号表达式的值取逗号中最右表达式的值
现在看(a=3*5,a*4),a+5这个逗号表达式,
首先对于(a=3*5,a*4)和a+5来说,按照从左向右运算先计算(a=3*5,a*4)
(a=3*5,a*4)
这个逗号表达式从左向右运算先计算a=3*5,这是个赋值语句,处理a=3*5=15
再计算a*4,此时a=15,所以a*4=60,但是注意这个表达式并没有对a赋值,仅仅是一个乘法运算
根据逗号表达式的值取逗号中最右表达式的值的原则,(a=3*5,a*4)的值为60
再看a+5,
之前运算(a=3*5,a*4)时,a已经被赋值为15,所以这里a+5=15+5=20
所以a+5这个表达式的值为20
再根据逗号表达式的值取逗号中最右表达式的值的原则,
表达式(a=3*5,a*4),a+5
的值即为a+5的值,也就等于20了
尔雁露佟栋
2019-04-08 · TA获得超过3万个赞
知道大有可为答主
回答量:1.2万
采纳率:33%
帮助的人:970万
展开全部
逗号表达式,按从左到右顺序进行,先计算a=3*5,再计算a*4.最后是计算a+5.因为a*4的值没有赋值给a,所以逗号语句结束后,a的值为15,所以最后a+5=20
.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
濮鸿畴钟绚
2019-04-11 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:34%
帮助的人:845万
展开全部
a=3*5;
所以a等于15
括号里还是逗号表达式
整个表达式的值取
a*4
得60
60

a+5
又是一个逗号表达式
但a的值没变还是15
所以整个表达式的值取
a+5=20
结果得20
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蔺艾卢靖
2019-08-20 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:800万
展开全部
首先逗号是左结合的所以那个括号没意义
a
=
3
*
5,
a
*
4,
a
+
5
最左边导致a被赋值为15;中间的表达式结果是60,但是并没保存;右边表达式结果是20作为整个表达式的最终结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式