在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题。能说一下过程吗?谢谢了!
展开
8个回答
2019-09-23
展开全部
这个题有两点需要注意的:
逗号表达式,其值为最后一个表达式,例如 c=(a,b) 那么 c= b
赋值运算符的优先级高于逗号表达式的优先级,例如 c=a,b 那么 c=a
基于上述基本原则,再来看本题,
根据逗号表达式的规则,y=x+13,x*2
根据赋值运算符的优先级,y=x+13,即 y=5+13 = 18
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这题主要就是明白两个概念:
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是逗号表达式,注意的是在c语言中赋值也是表达式,这个式子被分解成两部分,y=x+5是第一部分,x+5的值赋值给y,y的值变为7,而x+y是第二部分,求了值没作用就丢掉了,所以y的值就是7,如果你这样写情况就不一样了:y=(x+5,x+y)逗号运算符的优先级低于赋值运算符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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。
它是先算x*3(值为15),然后再算 x+13(值为18),再算x*2(值为10),最后把10赋值给y。
所以,y的值为10。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询