先頭へ戻る

リファレンス | Programming Place Plus 用語集

トップページ用語集

先頭へ戻る

名称

このページでは、プログラミングにおける「リファレンス」を取り上げます。ドキュメントの意味での「リファレンス」は、「リファレンスマニュアル」のページで取り上げています。

解説

プログラミングにおいて、メモリ上にあるオブジェクトを指し示すオブジェクトのことです。

リファレンスを用いて、指し示す先にある値をアクセスすることをデリファレンス(参照外し、間接参照とも)と呼びます。

リファレンス自体は、指し示す先が分かるだけの情報しか必要ないため、指し示す先にあるものの大きさを問わず、一定の小さなメモリで実現できます。この性質を利用して、効率的なプログラムを作成できます。たとえば、関数引数として、オブジェクトのコピーを渡す代わりに、それを指し示すリファレンスを渡すことで(参照渡し)、引数を引き渡す処理時間を抑えられます。また、さまざまな箇所で必要になるオブジェクトがあるとき、オブジェクトのコピーを作るのではなく、各々がリファレンスだけを持つことで、大量のコピーをメモリに置く必要がなくなり、メモリ使用量を抑えられます。

C言語のポインタは、一種のリファレンスであるといえます。ただし、コンパイラによるのチェックが甘かったり、扱いを間違えやすい点が多かったり(ヌルポインタの存在。ダングリングポインタワイルドポインタなど)するため、バグを作りこみやすいという問題を抱えています。

C++ は、C言語のポインタの機能を制限し、問題をいくらか解消した、「参照(リファレンス)」という名称の機能を持っています。C++ の参照は、ほかのオブジェクトの別名(エイリアス)として機能するものです。そのため、何も指し示していないという状態(ポインタにおけるヌルポインタ)がありません。

C++ のリファレンス(参照)については、新C++編「std::vector」などで解説しています。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー