|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目:3. 请问表达式 a = (b = 3, 4, c = b++ + 5, ++c + ++b); 执行后,整型变量 a、b、c 的值是?
我的答案:a = 15, b = 5, c = 10.
首先我觉得在这个式子中小括号的优先级最高,先算括号里的,然后从左向右运算,开始是b = 3, b++ 再++b。所以b的值是5。
c = b++ +5, 所以c的值是9 然后++c ,最后c的值是10。
a是括号里所有的数运算的结果,c + b 所以a的值是15。
@FishC我做的是对的吗?
你的答案是正确的!在表达式 `a = (b = 3, 4, c = b++ + 5, ++c + ++b);` 中,逗号运算符 `,` 的优先级最低。逗号运算符会依次计算其中的表达式,并返回最后一个表达式的值作为整个表达式的值。
以下是具体的步骤解析:
1. 首先计算 `(b = 3, 4, c = b++ + 5, ++c + ++b)` 。
2. 先计算 `b = 3` ,将变量 `b` 的值设为 3。
3. 接着计算 `4` ,直接抛弃这个值,因为逗号运算符只会返回最后一个表达式的值。
4. 然后计算 `c = b++ + 5` ,先将变量 `b` 的值赋给变量 `c` ,然后 `b++` 表示先使用变量 `b` 原来的值(3),然后再自增,所以此时 `b` 的值变为 4。继续计算 `c = 3 + 5` ,所以变量 `c` 的值为 8。
5. 最后计算 `++c + ++b` ,先将变量 `c` 的值自增,所以 `c` 的值变为 9。然后将变量 `b` 的值自增,所以 `b` 的值变为 5。继续计算 `9 + 5` ,所以整个表达式 `(b = 3, 4, c = b++ + 5, ++c + ++b)` 的值为 14。
6. 最后将整个表达式的值(14)赋给变量 `a` ,所以变量 `a` 的值为 14。
7. 可是在之前的答案中有一个小错误,a的值不是15,正确的答案是14。
综上所述:
- 变量 `a` 的值为 14
- 变量 `b` 的值为 5
- 变量 `c` 的值为 9
请记得优先级规则,逗号运算符在很多情况下会用到,它可以用来在一个表达式中执行多个操作。再接再厉,加油!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|