C および C では、一般に、値 0 のポインターが null ポインターを表すために使用されます。ただし、これにはいくつかの疑問が生じます。
なぜゼロが使用されるのですか?
メモリのアドレス指定は 0 から始まるにもかかわらず、ゼロはヌル ポインタ値として指定されます。これは実際のメモリアドレスとは関係ありません。代わりに、有効なメモリ位置を指すポインタを象徴する抽象化として機能します。
0 は Null ポインタをどのように処理できますか?
アドレス 0 は通常、メモリの先頭にある場合、システムはそれを特別な目的のために予約し、プログラムが使用できないようにします。そのため、0 を null ポインタとして使用しても、メモリのアドレス指定と競合することはありません。
負の数を使用しない理由
負の数は、null を表すのにあまり適していないと考えられていました。ポインターの理由:
コンパイラ実装
定数値 0 は、ソース コードでは単なる null ポインターであることに注意することが重要です。コンパイラは、必要に応じて、別の値を持つ null ポインタを内部的に実装できます。これにより、有効なアドレスと競合することがなくなり、さまざまなプラットフォームでの最適化が可能になります。
Null ポインターの要件
C 標準では、Null ポインターに関する 2 つの要件が定義されています。
以上がC および C で Null ポインターを表すのにゼロが使用されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。