1-17-0. 参照
公開日: 19:32 1. 基本編/1-17. 参照/1-17-0. 参照
参照変数はエイリアスであり、つまり、すでにある変数の別名です。参照が変数で初期化されると、変数名または参照名は変数を参照するために使われます。参照vsポインタ
参照はしばしばポインタと混同されますが、両者には3つの大きな違いがあります。参照はnullを指せません。参照は正当な保存領域に結びついていると前提することができなければいけません。
一度参照がオブジェクトに初期化されると、他のオブジェクトを参照するように変更することはできません。ポインタはいつでも別のオブジェクトを指すことができます。
参照は作成された時に初期化する必要があります。ポインタはいつでも初期化することができます。
参照の作成
変数がメモリ内にある場所に付与されているラベルを変数名と考えてください。参照はメモリ場所に貼り付けられた2枚目のラベルであると言えます。 次の例を考えてみます。int i = 17;iへの参照を次のように宣言できます。
int& r = i;次の例での&は参照の宣言では参照であるとして見てください。最初の宣言は"rはiに初期化された整数の参照"、2番めの宣言は"sはdに初期化された実数を参照"と読めます。以下は整数と実数の参照の例です。
#include <iostream>
using namespace std;
int main ()
{
// 変数の宣言
int i;
double d;
// 参照変数の宣言
int& r = i;
double& s = d;
i = 5;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;
d = 11.7;
cout << "Value of d : " << d << endl;
cout << "Value of d reference : " << s << endl;
return 0;
}
上のコードをコンパイルし実行すると、次の結果が得られます。Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7
参照は通常関数の引数リストと関数の戻り値に使われます。以下はC++プログラマにとって明 確にされるべきな2つの重大な参照のお題です。TODO
| 概念 | 説明 |
|---|---|
| 引数としての参照 | C++は参照をより安全な関数の引数として渡すことをサポートしています |
| 戻り値としての参照 | C++関数は他のデータ型を返すように、参照を返すことができます |
0 件のコメント :
コメントを投稿