ホームページ > バックエンド開発 > C++ > C ポインターのサイズは固定ですか、それとも可変ですか? また、関数ポインターはどのように異なりますか?

C ポインターのサイズは固定ですか、それとも可変ですか? また、関数ポインターはどのように異なりますか?

Barbara Streisand
リリース: 2024-12-14 09:59:15
オリジナル
438 人が閲覧しました

Are C   Pointer Sizes Fixed or Variable, and How Do Function Pointers Differ?

ポインター サイズ: 固定か変数?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート