已知:int a=5;,执行语句a=3*5,a*4,a+5;后,变量a的值是_________。

如题所述

逗号运算符连接的多个表达式都会得到执行,但最终取最后一个表达式的值作为整个逗号表达式的值。
a=3*5, a*4, a+5;
由于=的优先级比逗号高,所以这句话其实和下面这句话不是一回事:
a=(3*5, a*4, a+5);
你题目那句话,实际只有第一个a=3*5改变了a的值,后面两个都没有改变a的值,所以最终a的值是15。追问

那要是有括号怎么算

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-04
因为逗号运算符的优先级最低,所以a=15,后面的a*4,a+5不改变任何变量的值
a=(3*5,
a*4,
a+5)这样的式子就会等价于a=a+5=10,逗号运算符的规则就是从左往右依次执行,并返回最后一个表达式的值
第2个回答  2015-06-11
a就应该=3*5,后面的并没有赋值给a本回答被提问者采纳
第3个回答  2015-06-11
逗号运算符,自右致左,15
第4个回答  2015-06-11
15追答

逗号运算符返回最左边的值

追问

那这边说是第二个表达式啥意思

追答

是吗?那就应该是15*4+5吧

追问

然而答案就是15 -_-||

追答

哦不,a=10,绝对确认

追问

答案15

追答

?涨姿势!

相关了解……

你可能感兴趣的内容

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