|
間接参照(かんせつさんしょう、)とは、コンピュータのプログラミング、特にプログラミング言語において、値を、値を表すものそのもの直接によってではなく、名前や参照などにより間接的に、指し示すことおよびその参照や、それを参照して操作することである(普通「参照」はreferenceの訳語であるが、この語では普通「間接参照」で一語としている)。また、デリファレンス()とは、そのような参照を、参照して解決し(「参照し下し」)、値を得ることを特に指す語だが、これを指して間接参照ということもある。特にC言語のindirection operator(間接演算子)は、デリファレンスを行う演算子だが、規格の用語では間接参照と呼んでいる。デリファレンスは、大変しばしば「逆参照」と訳されているが〔たとえばK&Rの訳書〕、誤訳である。 具体的にはたとえば、ある変数に割り当てられたメモリアドレスを得たり、そのアドレスによって、その変数を間接的に操作したりする。 == 概要 == 以下、C言語を例に説明する。なお、標準規格中では「〜へのポインタ」等として、「アドレス」と直接的に表現するのを避けていることがあるが、ここでは一般的な解釈すなわちポインタはアドレスとする。 C言語では、単項&演算子すなわちアドレス演算子を、変数名など左辺値(代入できるとは限らない)を持つような式の前に付けると、その式が表すものを指すアドレスを得られる。このアドレスは、対応するポインタ型の変数に、その値として代入したりできる。 単項 *演算子すなわち間接演算子〔「間接参照演算子」という語もネットなどで見受けられるがJISにもK&R第2版訳書にもそんな語はない〕(indirection operator)を、前述のアドレスを表す式の前に付けると、それを解決して(間接参照して)、その指しているもの(の左辺値)を得られる。 インダイレクションは、実装上のテクニックにとどまるものではなく、たとえばデビッド・ホイーラーによる格言 "All problems in computer science can be solved by another level of indirection." が示すように、問題の解決のためにしばしば必要なものである。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「間接参照」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Indirection 」があります。 スポンサード リンク
|