[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

デリファレンス (dereference)

pointこの用語のポイント

point参照先を見に行くよ

スポンサーリンク

簡単に書くよ

デリファレンス (dereference)とは

何かを参照しているものの参照先を見に行くこと。
あるいは

プログラミング言語のPerlにおいて使われる表現で、リファレンスの指し示す先の値を取得・参照すること
です。

image piyo

詳しく書くよ

リファレンスは「何かを参照しているもの」ね。

デリファレンス

このリファレンス先の値を実際に見に行く(参照する)のが「デリファレンス」です。

デリファレンス2

「デリファレンス」という表現は主にプログラミング言語Perlで出てきます。
よって、このページではPerlのデリファレンスについて説明しますね。

まず前提として、Perlにおける「リファレンス」「デリファレンス」はC言語でいうポインタ(ポインタ変数)のような奴です。
「ポインタって何ですか?」な人は、まずは用語「ポインタ変数」の解説をご覧ください。
遠回りに思えるかもしれませんが、ポインタの概念を押さえておいて損はありません。
逆に言えば、ポインタの概念が分かっていれば、Perlのリファレンス/デリファレンスを理解するのは楽なはずです。

……C言語のポインタについては、バッチリになりましたでしょうか?
それでは、C言語のポインタを理解している前提で、Perlのリファレンスについて説明します。

C言語のポインタでは

p = &a;

と書くことで、変数「a」の居場所(メモリ上のアドレス)をポインタ変数「p」に入れることができました。
同じようにPerlでも

$p = \$a;

と書くことで、変数「$a」の居場所(メモリ上のアドレス)を変数「$p」に入れることができるのです。

また、C言語のポインタでは

*p

と書くことで、変数「a」の中身を参照することができました。
同じようにPerlでも

$$p

と書くことで、変数「a」の中身を参照することができるのです。

Perlにおいて

$p = \$a;

のようにして変数のアドレスを他の変数に入れることを「リファレンス」と言います。
あるいは、変数のアドレスを入れた変数「$p」を「リファレンス」と言ったり、アドレス化した変数「\$a」を指して「リファレンス」と言う場合もあります。

細かいニュアンスは前後の文章によって違ってきたりしますけどね。
いずれにせよ「変数のアドレスを取得する行為」に関連する何かを指す用語です。

そして、いよいよ本題です。

$$p

のようにして、リファレンスの指し示す先の値を取得・参照することを「デリファレンス」と言います。

多少の語弊はありますが

リファレンス→変数をアドレス化
デリファレンス→アドレスから元の変数を復活


と考えると分かりやすいと思います。
リファレンスとデリファレンスはセットで覚えてあげてください。

image piyo2

一言でまとめるよ

まぁ「デリファレンス」って単語が出てきたら「リファレンス先を参照することなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク