比較指針是否相等:C 標準演練
在C 中,比較指針是否相等可以很簡單,但需要遵守符合語言標準中概述的特定規則。
相等運算子 (==, !=)
對於相同類型的指針,使用 == 或 != 進行相等比較會產生直觀的結果。如果兩個指標都為空、都指向相同函數或都指向同一位址,則它們相等。
關係運算子 (, = )
相同類型的指標也可以使用關係運算子進行比較。如果它們指向相同的物件或函數,它們將按預期進行比較:p=q 產生 true,而 pq 產生 false。
但是,如果指標指向不同的物件或函數,或者如果其中之一為空,則關係比較的結果是未指定的。這意味著它們的行為取決於實現。
規則的例外
陣列元素:如果指標指向同一陣列的元素,指向索引較高的物件的指標比較較大。
Union成員: 如果指標指向同一個聯合體的成員,則轉換為 void* 後比較相等。
其他類型的指標:
注意事項
獎勵:標準函式庫助理
標準函式庫提供了範本函式std::greater、std::less、std::greater_equal 和std:: less_equal,其中可以用來對任何類型的指標進行排序,即使內建運算子不能。
以上是如何在 C 中安全地比較指標的相等性和排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!