C 標準は、初期化されていない場合、グローバル変数と静的変数が常に であることを保証します0。
これが私の質問です。初期化されていないグローバル変数と静的変数BSSは、プログラム内のセグメントに移動します。だから、いわゆる0はずですall-bit 0。
整数変数の場合、all-bit 0として評価され0ます。IEEE 754に従っている場合、浮動小数点変数も0.0です。ただし、ポインターの場合、null ポインターは必ずしも である必要はありませんall-bit 0。グローバル ポインターの初期化も次のように行います。
int* p = NULL;
ただ違いを生む:
int *p;