ポインター サイズ: 固定か変数?
C では、ポインターのサイズは固定であり、基になるアーキテクチャに応じて異なります。通常、32 ビット システムではポインタは 32 ビットのメモリを占有しますが、64 ビット システムでは 64 ビットを占有します。この固定サイズは、次のコード スニペットから明らかです。
int x = 10; int *xPtr = &x; char y = 'a'; char *yPtr = &y; std::cout << sizeof(x) << "\n"; std::cout << sizeof(xPtr) << "\n"; std::cout << sizeof(y) << "\n"; std::cout << sizeof(yPtr) << "\n";
出力:
4 4 1 4
ご覧のとおり、xPtr と yPtr のサイズは、型に関係なく、両方とも 4 です。彼らは指摘します。これは、ポインタがメモリ アドレスを格納し、そのサイズがアーキテクチャによって決定されるためです。
ただし、関数ポインタの動作が異なることに注意することが重要です。これらには関数プロトタイプに関する追加情報が含まれるため、通常、標準ポインターよりも多くのスペースを占有します。
以上がC ポインターのサイズは固定ですか、それとも可変ですか? また、関数ポインターはどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。