已知int i,a;,执行语句i=(a=2*4,a*3),a+5;后,求变量i的值时a+5为什么抛弃

 我来答
匿名用户
2013-07-28
展开全部
这个问题是运算符优先级和运算方向的问题
在所有运算符中逗号运算符的优先级最低,所以最后算,逗号表达式从左向右算,返回值为最右侧的子表达式的值。
在你的问题中,首先有括号,算括号内的,
a=2*4, a*3
根据规则,先算a = 2*4 结果 a =8
然后算 a * 3 结果为 24并
然后出括号
i = (3), a + 5
先算i = 3;赋值,
然后算a + 5 结果为 29 ,但此时表达式运算结束,此值并未保存到任何一个变量中,所以
a + 5已经运算了,但其运算结果被抛弃。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-28
展开全部
这是C的语法,i=(a-2*4,a*3),a+5;编译器会认为是i=(a-2*4,a*3)和a+5两个语句分别执行,所以a+5不起作用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式