C ++のNULLポインタ
正確なアドレスを割り当てることができない場合は、変数の宣言時には、ポインタ変数にNULL値を代入良いプログラミングの練習です。 フーNULLポインタ値がnullポインタと呼ばれています。
NULLポインタは、標準ライブラリゼロの定数で定義されています。 次のプログラムを考えてみましょう。
#include <iostream> using namespace std; int main () { int *ptr = NULL; cout << "ptr 的值是 " << ptr ; return 0; }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
ptr 的值是 0
メモリは、オペレーティングシステム用に予約されているため、ほとんどのオペレーティング・システムでは、プログラムは、メモリアドレス0へのアクセスを許可していません。 メモリアドレス0は特別な意味を持っているしかし、それはポインタがアクセス可能なメモリ位置を指していないことを示しています。 ポインタがNULL値(ゼロ値)が含まれている場合でも、慣例に従って、何を指していないことが想定されます。
次のようにNULLポインタをチェックするために、あなたは、if文を使用することができます。
if(ptr) /* 如果 p 非空,则完成 */ if(!ptr) /* 如果 p 为空,则完成 */
NULLポインタの使用を回避しながら、すべての未使用のポインタは、NULL値が割り当てられている場合、したがって、初期化されていないポインタの誤用を防止することができます。 多くの場合、いくつかのガベージ値がある初期化されていない変数、デバッグが困難プログラムを引き起こします。