C++ Null ポインタ
変数宣言時に、割り当てる正確なアドレスがない場合、ポインタ変数に NULL 値を代入することは良いプログラミング習慣です。NULL 値が代入されたポインタは空ポインタと呼ばれます。
NULL ポインタは標準ライブラリで定義された値がゼロの定数です。次のプログラムを見てください:
実例
#include <iostream>
using namespace std;
int main ()
{
int *ptr = NULL;
cout << "ptr の値は " << ptr ;
return 0;
}
using namespace std;
int main ()
{
int *ptr = NULL;
cout << "ptr の値は " << ptr ;
return 0;
}
上記のコードがコンパイルおよび実行されると、次の結果が生成されます:
ptr 的值是 0
ほとんどのオペレーティングシステムでは、プログラムはアドレス 0 のメモリにアクセスすることはできません。そのメモリはオペレーティングシステムによって予約されているためです。しかし、メモリアドレス 0 は特別な意味を持ち、そのポインタがアクセス可能なメモリ位置を指していないことを示します。慣例として、ポインタがヌル値(ゼロ値)を含む場合、それは何も指していないと見なされます。
空のポインタを確認するには、次のように if 文を使用できます:
if(ptr) /* 如果 ptr 非空,则完成 */ if(!ptr) /* 如果 ptr 为空,则完成 */
したがって、すべての未使用のポインタにヌル値を代入し、空のポインタの使用を避ければ、初期化されていないポインタを誤って使用することを防ぐことができます。多くの場合、初期化されていない変数にはゴミ値が格納されているため、プログラムのデバッグが困難になります。
その他の拡張
C++ ポインタ