【解決方法】C++でポインタ変数のサイズを確認するにはどうすればよいですか

[ad_1]

私は非常に混乱しています、私のコンセプトはポインタケースでは少し弱いので、あなたが満足してくれることを願ってあなたに質問しました。

私が試したこと:

int *p;
cout<< sizeof(p) < cout<

解決策 1

sizeof(p) 整数へのポインターのサイズを返します (4 バイト、または 32 ビット アプリケーションの場合は 32 ビット)。
sizeof(*p) 整数のサイズを返します (32 ビット アプリケーションでは 4 バイトまたは 32 ビットも返します)。

これをよりわかりやすく説明するには、次のことを考慮してください。

char *c;

sizeof(c) 文字へのポインターのサイズを返します (4 バイト、または 32 ビット アプリケーションの場合は 32 ビット)。
sizeof(*c) 文字のサイズ (1 バイト) を返します。

解決策 2

どちらも真実です。 sizeof オペレーターは常に正しい。

  • sizeof(p) – はポインタのサイズです。
  • sizeof(*p) のサイズです 尖ったタイプ

私の 64 ビット Linux ボックスでは、出力は次のようになります。

8
4

つまり、ポインタは 8-バイト長、整数は 4-バイト長。

解決策 3

sizeof 演算子は常に正しいため、どちらも true です。

sizeof(p) – ポインタのサイズです。
sizeof(*p) は、ポイントされた型のサイズです。

私の 64 ビット Linux ボックスでは、出力は次のようになります。

[ad_2]

コメント

タイトルとURLをコピーしました