C语言中这个式子x=(y*5,y=y+6,y/z,y+=2+(z-=1));到底是怎么计算的?
答案:2 悬赏:10 手机版
解决时间 2021-01-22 20:42
- 提问者网友:寂寞梧桐
- 2021-01-22 07:39
C语言中这个式子x=(y*5,y=y+6,y/z,y+=2+(z-=1));到底是怎么计算的?
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-01-22 08:13
(y*5,y=y+6,y/z,y+=2+(z-=1))
逗号表达式,规则:
从左到右依次计算每个表达式,整个表达式的值为最右边表达式的值。
左边开始:
y*5 无实际效果
y=y+6 此时:y=7+6=13
y/z 无实际效果
y+=2+(z-=1) 转化:y = y+2 + (z = z-1),y=y+2+3,y=13+2+3 = 18
最右边表达式的值即:18,所以整个表达式的值为18,即:x = 18
逗号表达式,规则:
从左到右依次计算每个表达式,整个表达式的值为最右边表达式的值。
左边开始:
y*5 无实际效果
y=y+6 此时:y=7+6=13
y/z 无实际效果
y+=2+(z-=1) 转化:y = y+2 + (z = z-1),y=y+2+3,y=13+2+3 = 18
最右边表达式的值即:18,所以整个表达式的值为18,即:x = 18
全部回答
- 1楼网友:旧脸谱
- 2021-01-22 09:21
()中是逗号表达式,从左至右计算,取最右边的表达式的值,这里就是取y+=2+(z-=1)的值。y*5是独立的,未影响变量值,y=y+6使y==13,y/z又不影响变量值,y+=2+(z-=1)被解释为y+=(2+(z-=1))-->y+=(2+3)-->y+=5-->y=y+5-->y=13+5==18。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯