PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Grad-ProbAsk
[理工] 程式设计
楼主:
u0424064
(ching)
2020-02-13 16:50:44
https://i.imgur.com/ImThqxn.jpg
想问这题答案为什么是B
作者:
beatssola
(Shark5566)
2020-02-13 17:10:00
因为X==0 之后另一边读1&&k 得正就跳出去了 所以=8讲义有优先级要读熟X=0 手残按到多一个=
作者:
GlassesKJ
(gg)
2020-02-13 17:17:00
不是==的优先度最高,再来是&&,最后是=吗?我以为是:看1==0,得00&&k++因为已经有0在&&前面了,直接跳掉最后x=0,k=8
作者:
beatssola
(Shark5566)
2020-02-13 17:21:00
喔喔对欸 楼上正解
楼主:
u0424064
(ching)
2020-02-13 17:40:00
想问++是对哪个operand做运算? 我以为++优先是最高喔喔 应该说&&结束就跳出去 为什么会这样 不太懂
作者:
GlassesKJ
(gg)
2020-02-13 17:50:00
我是这样想的:&&是and,如果已知左边的是0,那右边就不会判断可以直接跳过所以这题k++根本不会运算因为看到0&&……就可以直接跳掉了有错欢迎指出
楼主:
u0424064
(ching)
2020-02-13 17:55:00
你说的是对的 我刚刚跑了一下 改成1&&k++ 就变19 了想另外再问一题int a=5; a= ++a + ++a; printf(a);结果是14怎么会这样?
作者:
mathtsai
(mathtsai)
2020-02-13 20:10:00
感觉要看compiler 我觉得没人会这样写就是了
作者:
GlassesKJ
(gg)
2020-02-13 20:53:00
这个我先假设你要的是(++a)+(++a)如果不这样打我的dev会直接不给过先说我也不知道谁会这样写不过概念应该是这样++a表示在整个东西跑之前先加所以第一个++a会让a变6第二个变7接着才是真正做这一行a=a+a也就是a=7+7最后印14
楼主:
u0424064
(ching)
2020-02-14 09:22:00
知道了 感谢!
作者: qwer87511 (Joe)
2020-02-21 02:13:00
google Short-circuit evaluation
继续阅读
[理工] 递回
tiger1029
[理工] 台师电机108工数
sunwaiteric
[理工] 成大电机己崩溃
hello123
[理工] 105中正资管资结
oao521
[理工] 台大工数一些问题
rayi0327
[理工] 离散3-45
g5566897
[理工] 102成大程设
oao521
[理工] 109 交大 疑义题目
ccapricorntw
[离散]108台师 分割
thorny
Re: [理工] 100 离散
Honor1984
Links
booklink
Contact Us: admin [ a t ] ucptt.com