因爲通常無法預測編譯器會把變量放在內存中什麼地方
因爲它是一個整數,編譯器不會生成對它解引用的指令
表達式(a)花的時間更長。因爲(a)中運行時才能將 offset 進行大小調整再加到 p 上,編譯時不知道變量 offset 中的值。而(b)中編譯時已經完成了 3*4 的大小調整,運行時直接執行加上 12 的操作。
有問題,循環體中對指針先進行加1再進行解引用,如果是要執行數組的清零操作那麼第一個元素沒有清零。當然最關鍵的問題是循環體最後對指向數組最後一個元素後一個內存位置的指針進行了解引用,這是不行的,這會把其他某個內存地址的內容清零。參考答案答案中給出了一種情況