![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 問個基本C的問題
(https://www.pcdvd.com.tw/showthread.php?t=1077289)
|
|---|
x+=y+++--z 應該要這樣拆~
z = z - 1 x = x + (y + z) y = y + 1 |
引用:
嚴格上「x+1 可以寫成 x+=1」是不成立的,但「x = x + 1 可以寫成 x += 1」成立。 所以 x+= y+++--z 應該是 x = x + (y++) + (--z) 引用:
應該是 y = y + 1 x = x + (y - z) |
引用:
直接丟給程式跑比較快! int x = 1; int y = 2; int z = 3; x+=y+++--z; Debug.Log(x); 結果印出5。 z = 3 - 1 = 2 x = 1 + (2 + 2) = 5 y = 2 + 1 = 3 記得++ --先後順序是有差的~ |
這麼多 C 高手... Orz
x+=y+++--z ++ 在後整個運算式做完才會 +1, 在左則先 +1 假如 X = 1, Y = 2, Z = 3 X 答案為 5 X = X + (Y) + (Z-1), 做完 Y 再 + 1 Y = 3 Z = 2; 不同的 Compiler 或許會有不同的結果, 但標準 ANSI C 一定是這樣 |
引用:
握手~~~~~~~~~ :) |
引用:
我們還真有默契, 同一時間寫同樣原理出來...(握手) :) :) :) |
引用:
妳說的沒錯... 應該是 x = x + (y + z) 先後順序是會有差,但我剛剛一直把 -- 想成會調換 sign... 所以不是在先後順序出錯 :cry: |
引用:
基本上micall.lee那樣寫就是對的 原po說錯,我想應該是他忘了y++是要運算完y才+1 X19-TyoeIII上一篇回覆的就更清楚了 |
引用:
那就上烤肉架吧~~ 我想大家都餓了~~~ :D |
引用:
不是喔 y++ 是這個算式之後才會 +1,在這個算式不加 ++y 才會是在這個算式先 +1 |
| 所有的時間均為GMT +8。 現在的時間是05:32 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2026。