2014-01-11 38 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(如您自己的注释中所示)。

相关问题