5. 若 int a=3; int b=4; int d; d=(a=(b,5),a+b),90; 则d的值是? 最后一个表达式 什么意思 只有括号和逗

[复制链接]
查看11 | 回复5 | 2011-1-15 10:53:55 | 显示全部楼层 |阅读模式
d=9。a=(b,5)是赋值表达式,a的值赋值5。.a=(b,5),a+b是逗号表达式,整个表达式的值为5+4=9。d=(a=(b,5),a+b)又是赋值表达式,所以d的值为表达式a=(b,5),a+b的值9。d=(a=(b,5),a+b),90; 这个又是逗号表达式,值为90。
回复

使用道具 举报

千问 | 2011-1-15 10:53:55 | 显示全部楼层
称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为
表达式1,表达式2逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。(b,5)是一个逗号表达式返回5,同时a的值变为5(5,a+b)重新构成逗号表达式,返回9: (a+b=5+4=9)9,90 构成最终的逗号表达式
回复

使用道具 举报

千问 | 2011-1-15 10:53:55 | 显示全部楼层
9我记得不太清楚了。 但是c=(a,b)这个的规则是。 比如a=1 b=2那么c=2. 是取后面的值为括号运算的值
回复

使用道具 举报

千问 | 2011-1-15 10:53:55 | 显示全部楼层
答案是9a=(b,5),当b不为0的时候取后一个值,即5那么就是d=(a=5,a+b),90a+b=9也就是d=(5,9),90d=(5,9),5不为0,取9
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行