プログラミングにおいて、ポインタが、どの有効な対象も指していないことを表す特別な値です。
C言語では古くから、ヌルポインタをソースファイル上で表すために NULLマクロが使われており、実体は 0 や ((void*)0) などとして定義されます。
C言語の NULL については、C言語編「ポインタ①(概要)」のページを参照してください。
C++ でも NULLマクロは使えますが、整数リテラルとして扱われる実装では、オーバーロード解決で意図しない候補が選ばれる可能性があります。そのため C++11 以降では、ヌルポインタ専用のキーワードである nullptr を使う方法が一般的です。nullptr はヌルポインタを表現するためだけに定義された std::nullptr_t という型であり、ヌルポインタであるという意図が明確にできます。
C++ の NULL については、新C++編「構造体とポインタ」のページを参照してください。
ヌルポインタは何も指し示すものがないので、間接参照を行うことは不適切です。プログラミング言語によっては、例外(NullPointerException など)が発生しますが、C言語や C++ では、未定義の動作になります。
Programming Place Plus のトップページへ
| はてなブックマーク に保存 | Facebook でシェア | X で ポスト/フォロー |
| LINE で送る | noteで書く |
|
| 管理者情報 | プライバシーポリシー |