ポインタ同士の演算結果はintではない

基礎的な事ですが、ポインタ同士の演算結果はptrdiff_t型です。仮にintと勘違いしても、大きな問題になることは稀ですが、このくらいは覚えておくと良いと思います。

定義はC言語だと<stddef.h>、C++言語だと<cstddef>にあり、符号付きの整数型とだけ定められ、その表現バイト数は処理系定義です。


ちなみに、ポインタ同士の演算は同一の配列においてのみ有効です。関係のない2オブジェクト間の距離(?)を測る、などに使ってはいけません。

Leave a Reply

Be the First to Comment!

Notify of
avatar
wpDiscuz