就是下雨了 发表于 2018-10-4 18:04:56

关于++在前和在后的一道题

假设int a=1,b=2;则表达式(++a/b)*b--的值是多少?
各位大神,这样的题应该怎么解,可以帮我分析一下解题的思路吗?{:5_91:}

claws0n 发表于 2018-10-4 18:10:43

b-- 优先级最高,* 的优先级最低,跟 -- 与 () 比,先不看
b == 1;++a;a==2;
(2/1)*1 == 2

Sakura 发表于 2018-10-5 14:12:13

看编译器怎么解释

就是下雨了 发表于 2018-10-18 10:38:36

claws0n 发表于 2018-10-4 18:10
b-- 优先级最高,* 的优先级最低,跟 -- 与 () 比,先不看
b == 1;++a;a==2;
(2/1)*1 == 2

最近又做了一些这个类型的题,好像应该是++a在本行会进行运算这里a就是2,
而b--在本行不参与运算,所以b还是2,本行结束之后b才等于1.
就成了(2/2)*2 == 2了。{:5_109:}

claws0n 发表于 2018-10-18 10:42:58

就是下雨了 发表于 2018-10-18 10:38
最近又做了一些这个类型的题,好像应该是++a在本行会进行运算这里a就是2,
而b--在本行不参与运算,所以 ...

b-- 是下一个生效,你这一题有两个 b 所以立即生效~
练习题这样写没有关系,一般的代码不要那样写,不好阅读

就是下雨了 发表于 2018-10-18 10:46:14

claws0n 发表于 2018-10-18 10:42
b-- 是下一个生效,你这一题有两个 b 所以立即生效~
练习题这样写没有关系,一般的代码不要那样写,不好 ...

原来是这样啊 谢谢解答
页: [1]
查看完整版本: 关于++在前和在后的一道题