使用關係運算子比較指標
比較相同類型的兩個物件指標時,結果是取決於程式的位址空間中所指向的物件位置。 指標也可以與判斷值為 0 的常數運算式或 void * 類型的指標進行比較。 如果是對 void * 類型的指標進行指標比較,則另一個指標會先隱含轉換成 void * 類型, 然後才進行比較。
兩個不同類型的指標無法進行比較,除非:
其中一個類型是衍生自另一個類型的類別類型。
至少有一個指標已明確轉換 (轉型) 為 void * 類型 (另一個指標會隱含轉換成 void * 類型以便進行轉換)。
相同類型且指向相同物件之兩個指標的比較結果一定為相等。 如果將物件的兩個非靜態成員指標相互比較,則適用下列規則:
如果類別類型不是等位,而且未以 access-specifier (例如 public、protected 或 private) 分隔兩個成員,則最後宣告的成員指標比較結果會大於之前宣告的成員指標 (如需 access-specifier 的詳細資訊,請參閱存取指定名稱中的<語法>一節)。
如果以 access-specifier 分隔兩個成員,則結果會是未定義。
如果類別類型是等位,則該等位中不同資料成員的指標比較結果為相等。
如果兩個指標指向相同陣列的元素,或指向超出陣列結尾的元素一,則具有較高註標的物件指標比較結果會較高。 只有在指標參考相同陣列中的物件或超出陣列結尾的位置一時,才能保證指標比較有效。