同じ型のオブジェクトへの 2 回のポインターを比較するとプログラムのアドレス空間にはオブジェクトの位置によって決まります。ポインターは0 または型のポインターが無効になる定数式と比較できます。* ポインターを比較の型が void ポインターに対して行われた場合*無効を入力するそのほかのポインターに暗黙的に変換されます。* その後比較されます。
さまざまな種類の 2 種類のポインターは比較できません :
1 個の型は他の型から派生したクラス型です。
ポインターの少なくとも 1 つが明示的にキャスト (無効) を入力するに変換されます。* (無効を入力するそのほかのポインターは * 変換の場合は暗黙的に変換されます)。
同じオブジェクトを指します。同じ型の 2 のポインターの値を比較することが保証されます。オブジェクトの非静的メンバーへの 2 回のポインターを比較する場合次の規則が適用されます :
クラス型が共用体である2 個のメンバーが アクセス指定子で ありプライベートまたはプロテクト挿入公開キーなどの最後に宣言されている宣言されたメンバーに以前のメンバーへのポインターはポインターは比較します。( アクセス指定子 の詳細についてはアクセス指定子 の構文 " を参照してください)。
2 個のメンバーが アクセス指定子で 分けられれば結果は未定義になります。
クラス型が共用体である場合はその共用体のデータ メンバーへのポインターの値を比較します。
同じ配列の要素または配列の末尾を超える要素 1 への 2 回のポインターのポインターが上位の添字を持つオブジェクトへのポインターよりも比較します。ポインターの比較はポインターが同じ配列は配列の末尾を超える位置 1 にオブジェクトを参照する場合のみ有効であるとは限りません。