[ad_1]
私は非常に混乱しています、私のコンセプトはポインタケースでは少し弱いので、あなたが満足してくれることを願ってあなたに質問しました。
私が試したこと:
int *p; これをよりわかりやすく説明するには、次のことを考慮してください。 どちらも真実です。 私の 64 ビット Linux ボックスでは、出力は次のようになります。 つまり、ポインタは sizeof 演算子は常に正しいため、どちらも true です。 sizeof(p) – ポインタのサイズです。 私の 64 ビット Linux ボックスでは、出力は次のようになります。
[ad_2]
cout<< sizeof(p) <解決策 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)
のサイズです 尖ったタイプ。
8
4
8
-バイト長、整数は 4
-バイト長。
解決策 3
sizeof(*p) は、ポイントされた型のサイズです。
コメント