Null
ポインタや参照が無効であることを示す。C言語では無効ポインタを表現するための特別な値として、処理系定義のNULLマクロが用意された。Cの規格ではNULLポインタの内部数値は0とは規定されていないが、代表的な実装では以下のようになっている。
またC言語から派生したC++では、C言語から引き継いだNULLマクロ定義が存在するが、Cとは違ってvoid*から他の型へのポインタに暗黙変換することを禁止したため、C++03規格までは以下のように整定数0に等しかった。
しかし、これは基本整数型intの0と型システムの上では同じになるため、しばしばオーバーロードの呼び間違いが生じることとなった。これを解消するためC++11規格では専用のstd::nullptr_t型を持つリテラルを表すnullptrキーワードが導入され、NULLマクロは処理系定義となった。
C++以後の言語ではnullを最初から専用構文として導入した事例が多い。
Null(ヌル、ナル)は、何もない、という意味で、プログラミング言語などコンピュータ関係では、「何も示さないもの」を表すのに使われる。同様のものとして、nil(ニル) が使われることもある。ただし、PythonはNoneが使われる。
ドイツ語において Null は数値の0(ゼロ)を意味し、発音は /nʊl/ である。一方、英語において null は /nʌl/ と発音される。ドイツ語においても、数値の0と区別するために、本記事の意味の Null は英語風に /nʌl/ と発音される場合がある。
日本においては「ヌル」という発音が定着しているが、英語読みに近い「ナル」という発音で呼ばれる場合もある。例えば、JISのJIS X 3005-1:2014「データベース言語SQL 第1部:枠組(SQL/Framework)」(日本産業標準調査会、経済産業省)のP4には「ナル値 (Null Value)」、JIS X 3010:2003「プログラム言語C」(日本産業標準調査会、経済産業省)のP4には「ナル文字 (Null Character)」という記述がある。この他にも専門書や国家試験でも見られる。
プログラミング言語などにおいて、nullやnilといった予約語や定数名のものなどの意味がどういったものかは言語により、場合によっては実装ごとに違う。ポインタや参照のある言語では、ヌルポインタなどと呼ばれる何も指さない特別なポインタであることもあるし、Pythonのようにオブジェクトのひとつであることもある。古典的なLISPのように真理値の偽(の代表)や空リスト「()」を兼ねたもの(それらと同じもの)だったりすることもある。