#include<iostream>
int main(){
int variable = 0;
int &rvar = variable;
std::cout << "var:" << variable << std::endl;
rvar = 1;
std::cout << "var:" << variable << std::endl;
return 0;
}
実行結果
var:0
var:1
関数の引数でポインタの代わりに使うと良さそうな気がする
宣言と同時に初期化が必要なので何もさしていない状態にできない点がポインタと違う
何もさしていない状態が必要ならポインタ
何かをさしていないとまずいなら参照
使い分けはこんな感じってGoogle先生が言ってた
ちなみに&を変数名側につける理由は
int a=1, b=2;
int& ra=a, rb=b;
と宣言した場合に
int& ra=a;
int& rb=b;
と宣言したことにならないから
この場合
int& ra=a;
int rb=b;
と宣言したことになり変数rbは参照ではなくint型の変数になる
当然実行もできるのでコンパイルエラーは吐き出さない
あたかも参照しているかのように動作するかもしれないので考えるだけでも恐ろしい
関数の仮引数に参照を使う場合はこの心配は要らないのでどっちでも良いと思う
意味的には型名側に&を付けたいけど我慢
PR