nullっての、混同するケース多いですよねぇ。
いまだにCのソースで、str[ len ] = NULL; なんて記述を見つけたりします
(CでのNULL は (void *)0 というポインタ値(メモリ上のアドレス)で、文字列の終端のために用意された定数ではないです)
※C++では、NULL は 0 という値になりましたからねぇ・・・指摘できなくなってしまったorz
データベースではフィールドとして用意されたデータ領域の値が未定義であるという意味での NULL が使われます。
C#には、同様に値が未定義であることを許可する null という型?値?が導入されているようです。
値としての NULL と 値が未定義である NULL とは、まったく異質のものなのに混同してしまうケースとかあるみたいだし
データベースフィールドのNULLとC#のnullを同一視してしまうとかもありそうです。(掲示板にその手の話題が出ているキガス)
NULLに反対ってな意見をどこぞで見たのですが、数値や文字列を格納するための領域で値が設定されていない「状態」を表現するのは必要なことだと思います。
ずいぶん昔は、99999が設定されていたら未定義、とか後で拡張する人に対する配慮のないプログラムが横行してましたが、そっちの方がもっと問題です。┐(´ー`)┌
でも未定義のNULLってのは、ソースプログラムの可読性を損なわせるような、やっかいな記述を強いられることが多いと感じますね。
そのへんをエレガントにできるワザがありそうな気がするんだけど・・・
気のせいなのかなぁ(謎