CやC++において重要なポインタに関連する機能である参照についてのメモ。
ここで言う参照とは、変数とは別の名前で機能する暗黙的なポインタのことで、参照とポインタは別のものなので注意。
INDEX
参照について(2)
参照には次の3つの用途がある。
-
参照の3つの用途
-
- 参照は関数に渡すことができる
- 関数から参照を返すことができる
- 独立した参照(独立参照)を定義することができる(※)
今回は2番目の「関数から参照を返すことができる」についての説明。
※3つ目の独立した参照に関しては一般的ではないため説明は割愛する。 -
関数から参照を返す
- サンプルコード
-
[code]
#include
using namespace std;// グローバル変数宣言
int a;// プロトタイプ宣言
int &myfunc();int main(int argc, const char * argv[])
{
myfunc() = 10; // myfunc() の返す参照に10を代入cout << a << "\n"; return 0; } // int型の参照を返す int &myfunc() { return a; // aへの参照を返す } [/code]
- 結果
-
[code]
10
[/code]
補足説明
- myfunc() は参照を返す。
- myfunc() を左辺で使用すると myfunc() の戻り値である参照に対して代入が行われる。
- 参照を返す場合には変数のスコープに注意する。
まとめ
参照が便利であることは理解できるが、ここら辺からややこしく感じてしまう。独立参照に関しては一般的ではないため、存在だけ知っておくだけでよい。