C++_アンパサンドの意味

& ( アンパサンド ) には 2 つの意味がある!

&変数アドレス演算子
型名&参照型を示す宣言子

 

ポインタでの & ( アドレス演算子 )

メモリアドレスを得る演算子
ポインタとセット。
参照型で利用するものとは全く別

    int hoge = 10;
    int* fuga = &hoge

ポインタを他のメソッドへ渡す時実引数にアンパサンドを指定するが、
このアンパサンドはアドレス演算子 ( operator ) 。

実引数:
実際に使う関数の引数。
仮引数は、定義時に使用する引数。

 

参照型 での & ( 宣言子 )

hoge参照型を表す宣言子。

    int hoge = 10;
    int& fuga = hoge;

参照渡しの時の、プロトタイプ宣言仮引数のアンパサンド
アドレス演算子ではなく宣言子 ( declarator ) 。

 

 

こちらから。
https://utage.headwaters.co.jp/blog/?p=2939
http://www-watt.mech.eng.osaka-u.ac.jp/~tasai/ptrdoc/node5.html
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14155521919

 

以上。アドレス演算子と参照型宣言子を同一視してイミフになってた。