トップ » はっかかー日記 » 少年、Nullについて想う

少年、Nullについて想う はてなブックマーク数 このエントリーをブックマークに追加

Nullって…、あるじゃないですか?

プログラムを書く人にはこれほど馴染みのある単語もないけど、
プログラムを書かない人からすればこれほど馴染みのない単語もないと思います。
少なくとも、ウチの両親はこの単語は知らないはずです。

「この間、帰りにNull拾ったんだけどね…」

とか言いだしても、きっとわかってもらえません。
いや、これは僕もわかりませんが。

Nullとはすなわち、「存在しない」ことを示す予約語または定数ですよね。
こうして聞くとなんかかっこいいですね。
「ぬるぽ」とか聞くといらっとしますが。

でもNullってドイツ語で言うところの“ゼロ”なんですよね。
確かに、C言語でもNULLは

#define NULL 0

と定義されていて、0を指しているポインタ=「存在しない」というのは納得できます。

でも、ですよ?
Nullはゼロではなく“存在しない”ものを指します」とか言われても、ドイツの人からしたらNullはやっぱりゼロなんですよ。
絶対混乱するってば。

僕がドイツの人に聞いてみたいことのNo.1です。


このサイトについて

八角研究所
株式会社八角研究所のWEBサイトですよー。 いろんなものを創り出すことのできる環境をコツコツ構築中。 いったい、いつになったらできるのか。 この技術情報サイトもそのための活動の一環のつもり。

執筆者紹介

少年

少年

少年です。 18歳以下でも立派に社員です(嘘)。

TrackBack URL :

古いものに突っ込みいれるのもどうかと思いましたけど、一応。
C言語のNULLは
#define NULL ((void *)0)
が正しいかと思います。
# define NULL 0
はC++の定義。

しろうさん、ご指摘どうもありがとうございます!

NULLの定義は、処理系によって異なるようですね。
http://oshiete1.goo.ne.jp/qa413278.html
僕自身、「NULLを使うこと自体が、これはポインタだよという意志表示になる」と錯覚していました。
僕の錯覚を前提にしたとき、上記の「# define NULL 0」は間違いなのです。
NULLというのは、なかなかに深いテーマでした。
勉強させてもらいました!