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