少年、Nullについて想う
Nullって…、あるじゃないですか?
プログラムを書く人にはこれほど馴染みのある単語もないけど、
プログラムを書かない人からすればこれほど馴染みのない単語もないと思います。
少なくとも、ウチの両親はこの単語は知らないはずです。
「この間、帰りにNull拾ったんだけどね…」
とか言いだしても、きっとわかってもらえません。
いや、これは僕もわかりませんが。
Nullとはすなわち、「存在しない」ことを示す予約語または定数ですよね。
こうして聞くとなんかかっこいいですね。
「ぬるぽ」とか聞くといらっとしますが。
でもNullってドイツ語で言うところの“ゼロ”なんですよね。
確かに、C言語でもNULLは
#define NULL 0
と定義されていて、0を指しているポインタ=「存在しない」というのは納得できます。
でも、ですよ?
「Nullはゼロではなく“存在しない”ものを指します」とか言われても、ドイツの人からしたらNullはやっぱりゼロなんですよ。
絶対混乱するってば。
僕がドイツの人に聞いてみたいことのNo.1です。
このサイトについて
TrackBack URL :

古いものに突っ込みいれるのもどうかと思いましたけど、一応。
C言語のNULLは
#define NULL ((void *)0)
が正しいかと思います。
# define NULL 0
はC++の定義。
Posted by しろう | 2009年07月08日 22:36
しろうさん、ご指摘どうもありがとうございます!
NULLの定義は、処理系によって異なるようですね。
→ http://oshiete1.goo.ne.jp/qa413278.html
僕自身、「NULLを使うこと自体が、これはポインタだよという意志表示になる」と錯覚していました。
僕の錯覚を前提にしたとき、上記の「# define NULL 0」は間違いなのです。
NULLというのは、なかなかに深いテーマでした。
勉強させてもらいました!
Posted by 少年 | 2009年07月12日 15:50