在C語言中,能否取得陣列元素的位址透過下標取得已過尾數,如下碼
具體來說,&array[5] 符合C 標準嗎?
是的,代碼符合 C 標準。
依據C99草案標準:
§6.5.2.1,第2 段:
後綴表達式後跟方方括號[] 中的表達式是數組元素的下標指定物件。
§6.5.3.2,段落3:
如果[& 運算子] 的運算元是[] 運算子的結果,則& 運算子和[]隱含的一元* 都不會被求值,結果為就像刪除& 運算子並將[] 運算子變更為運算子一樣。
§6.5.6,段落8:
如果表達式P 指向陣列物件的最後一個元素,則表達式(P) 1 指向陣列物件的最後一個元素。
基於這些摘錄:
因此,表達式 &array[5] 等價於 *(array 5),它指向超過數組末尾 1數組的最後一個元素。根據標準,這是合法的,只要指針沒有取消引用。
以上是透過下標取得 C 數組末尾的位址合法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!