在C语言中,如果有如下定义:int x=5,y;y=(x*3,x+13),x*2;则y = 255

在C语言中,如果有如下定义:intx=5,y;y=(x*3,x+13),x*2;则y=图片上的第34题。能说一下过程吗?谢谢了!... 在C语言中,如果有如下定义:int x=5,y;y=(x*3,x+13),x*2;则y =图片上的第34题。能说一下过程吗?谢谢了! 展开
 我来答
microroom
科技发烧友

2019-09-23 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1580万
展开全部
(x*3,x+13)是一个逗号表达式,结果是最右边那个表达式x+13的值18。y=(x*3,x+13),x*2;即y=18,x*2;又是一个逗号表达式,先将y赋值为18,再算x*2等于10。所以y=18。
匿名用户
2019-09-23
展开全部

这个题有两点需要注意的:

  1. 逗号表达式,其值为最后一个表达式,例如 c=(a,b) 那么 c= b

  2. 赋值运算符的优先级高于逗号表达式的优先级,例如 c=a,b 那么 c=a

基于上述基本原则,再来看本题,

根据逗号表达式的规则,y=x+13,x*2

根据赋值运算符的优先级,y=x+13,即 y=5+13 = 18

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d4fe725
2019-09-23 · 超过11用户采纳过TA的回答
知道答主
回答量:35
采纳率:31%
帮助的人:11.2万
展开全部
这题主要就是明白两个概念:
1、逗号表达式将多个子式联接起来,从左往右计算,整个逗号表达式的值为最后一个子式的值。
2、逗号表达式的运算优先级最低,一定是最后计算

明白这两个概念之后,再来看这个表达式y=(x*3, x+13), x*2
1、首先,括号的优先级最高,先算(x*3, x+13)
2、括号内部是一个逗号表达式,联接了两个子式x*3, x+13,值分别是15、18,所以逗号表达式的值为18,即括号表达式为18
3、然后计算赋值表达式y=(x*3, x+13),计算结果为y=18
4、最后,再计算一个逗号表达式y=(x*3, x+13),x*2,结果是18、10,逗号表达式的值为10
所以,最后y=18
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vnclight
2019-09-23 · TA获得超过952个赞
知道小有建树答主
回答量:1169
采纳率:67%
帮助的人:63.3万
展开全部
这是逗号表达式,注意的是在c语言中赋值也是表达式,这个式子被分解成两部分,y=x+5是第一部分,x+5的值赋值给y,y的值变为7,而x+y是第二部分,求了值没作用就丢掉了,所以y的值就是7,如果你这样写情况就不一样了:y=(x+5,x+y)逗号运算符的优先级低于赋值运算符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2019-09-23 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
int x=5,y;y=(x*3,x+13),x*2;则y =10
它是先算x*3(值为15),然后再算 x+13(值为18),再算x*2(值为10),最后把10赋值给y。
所以,y的值为10。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式