我知道這已被散列了很多時間,但今天我遇到了一個案例,它震撼了我對指針數學/數組索引的理解。指針數學與數組索引
正如我總是明白它,& mybuff [10]和(& mybuff + 10)是referancing相同的內存equivilent方式。
不過,我花了一上午的戰鬥,其中一個案例:當與優化的編譯工作只是罰款編譯調試時,
memcpy(&mybuff+10,&in,8);
溢出的緩衝區。
雖然athe同時,
memcpy(&mybuff[10],&in,8);
在這兩種情況下工作得很好。
非常感謝任何想法或指針。
三通熙詢問「指針」 – Daniel
[某些指針(http://xkcd.com/138/)。 – mopsled
'&mybuff [10]'計算結果爲'&(*(mybuff + 10))',它是從'&mybuff + 10'不同。請記住像'[]'這樣的後綴運算符比像'&'這樣的一元運算符具有更高的優先級。的 –