C 言語では、NULL と 0 の違いは次のとおりです。NULL は NULL ポインター定数、0 は整数定数です。NULL のデータ型は void * であり、0 のデータ型は異なります。コンテキスト上、NULL と 0 は等しいかどうかを直接比較できず、0 の型は明示的に変換する必要があります。NULL は null ポインターを表すために使用され、0 はゼロ値や null ポインターなどのさまざまな値を表すために使用されます。 ; 古いコードでは、0 を null ポインターとして使用できますが、安全のため、ポインター変数の初期化には NULL を使用することをお勧めします。0 は整数変数にのみ使用できます。
#C 言語における NULL と 0 の違い
C 言語では、NULL
0 は定数ですが、異なる概念を表します:
1. 値と型
は次のとおりです。存在しないメモリ アドレスを指す null ポインタを表す特別なポインタ定数。
は、値がゼロに等しい整定数です。
2 データ型
のデータ型は
void * です。
void 型へのポインタです。
のデータ型はコンテキストによって異なり、整数または浮動小数点 (
int、
long、
など) になります。 float ポイントタイプ。
3.
と
0 を直接比較して等しいかどうかを比較することはできません。彼らのさまざまなタイプ。
を
void ** 型に明示的に変換する必要があります:
NULL == (void *)0
は、次のようなさまざまな値を表すために使用されます。
C99 より前では、
0 として定義されていました。
。したがって、古いコードでは、0
が NULL ポインター定数として使用される可能性があります。
ポインタ変数の場合、0
は有効なアドレスと誤認される可能性があるためです。住所。
整変数の場合、NULL
はポインターにのみ使用できます。
以上がC言語におけるnullと0の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。