int* p1, p2;
C++ 標準によれば、p1
はポインタですが、そうでp2
はありません。
なぜ C++ 標準もp2
ポインターとして定義しないのだろうか?
そうするのは合理的だと思います。なぜなら:
C++ は強力な型付け言語です。つまり、任意の型 T が与えられた場合、ステートメントT t1, t2;
は常に保証され、同じ型を持ちますt1
。t2
ただし、 と が同じ型を持っていないという事実p1
はp2
、規則に違反しており、直感に反するように見えます。
それで、私の質問は次のとおりです。そのような直感に反するルールをそのままにする理由は何ですか? 下位互換性のためだけですか?