3 回答

TA貢獻1796條經驗 獲得超4個贊
后綴表達式,后面是方括號中的表達式 []
是數組對象的元素的訂閱指定。下標運算符的定義 []
那是 E1[E2]
是相同的 (*((E1)+(E2)))
..因為適用于二進制文件的轉換規則。 +
操作員,如果 E1
是數組對象(等價地,指向數組對象的初始元素的指針) E2
是整數, E1[E2]
指定 E2
-第四要素 E1
(從零算起)。
一元 &
運算符生成其操作數的地址。如果操作數具有“類型 類型‘,結果有類型’指向 類型“”如果操作數是一元數據的結果 *
運算符,則該運算符和 &
運算符被計算,結果就好像兩者都被省略了一樣,只是對運算符的約束仍然適用,并且結果不是lvalue。同樣, 如果操作數是 []
運算符,既不是&運算符,也不是一元 *
,這是由 []
值計算,結果就好像 &
運算符被移除,并且 []
操作符更改為 +
操作者 ..否則,結果是指向其操作數指定的對象或函數的指針。
將具有整數類型的表達式添加到指針或從指針中減去時,結果具有指針操作數的類型。如果指針操作數指向數組對象的一個元素,并且數組足夠大,則結果指向與原始元素偏移的元素,從而使結果數組元素和原始數組元素下標的差值等于整數表達式。換句話說,如果表達式 P
指向 i
-數組對象的第四個元素,表達式 (P)+N
(相當于, N+(P)
)和 (P)-N
(在哪里 N
有價值 n
)分別指向 i+n
-第四和 i?n
-數組對象的第四個元素,只要它們存在。另外,如果 P
指向數組對象的最后一個元素,即表達式。 (P)+1
指向數組對象的最后一個元素,如果表達式 Q
指向數組對象的最后一個元素,即表達式。 (Q)-1
指向數組對象的最后一個元素。如果指針操作數和結果都指向同一個數組對象的元素,或者指向數組對象的最后一個元素,則計算值不會產生溢出;否則,行為將未定義。如果結果指向數組對象的最后一個元素,則不應將其用作一元的操作數。 *
計算的運算符。
&array[5]
&*(array + 5)
(array+5)

TA貢獻1842條經驗 獲得超22個贊
&array[5]
&array[5]
- 3 回答
- 0 關注
- 556 瀏覽
添加回答
舉報