2014-01-11 73 views
-2

我有點混淆標準C算Objective C中「* =」運算符的含義是什麼?

herefrom here too

1)INT someInteger = 42; someInteger ++; // someInteger == 43

2)int anotherInteger = 64; anotherInteger--; // anotherInteger == 63

anotherInteger *= 2;  // anotherInteger == 126 

綜觀等式2與運算符* =,如果參照超級鏈接2,它應該是在本形式的* = B,等於爲a = A * B是嗎?

關於超鏈接1,它應該有128個,但是(見等式2,結果是註釋126)?

+2

我不確定我是否理解您的問題。 '63 * 2 = 126',你還期待什麼其他值? – Mat

+0

是的,'a * = b'與'a = a * b'相同(除了'a'只評估一次)。另外,我不明白你最後一句話。 – 2014-01-11 14:54:39

+0

哦,我看到了,我以爲它是基於anotherInteger = 64再次重新計算的。謝謝! –

回答

0

線2)後,anotherInteger是63,所以dubling在第3行),即顯然會126,而不是128。

而當是,a *= b相同a = a * b

+0

謝謝,我以爲它仍然使用anotherInteger = 64計算,所以它使用63.謝謝! –

0

你有正確的含義。在第2行中,在分配anotherInteger = 64之後,調用anotherInteger--減1,將值設置爲63(如您自己的註釋中所示)。

相關問題