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