参照渡しについて。
- 型のすぐ後ろに&をつける。(例:int& i)
- 参照渡しとは遠隔操作であり、エイリアスである。もっというと、アドレス乗っ取りである。
- ポインタに似ているが全然違う
#includeusing namespace std; void ref(int& x) { cout << &x << endl; //001BF71C cout << x << endl; //1927 x++; } void WesternToShowa(int& x) { cout << &x << endl; //001BF71C cout << x << endl; //1927 ref(x); if(1926 <= x && x <= 1989) { x -= 1925; } else { x = 0; } } void Showa() { int year; cout << "西暦を入力してください。" << flush; cin >> year; cout << &year << endl; //001BF71C cout << year << endl; //1927 WesternToShowa(year); if(year != 0) { cout << "その年は昭和" << year << "年です。" << endl; } else { cout << "その年は昭和ではありません。" << endl; } } int main() { Showa(); }
となる。
マルチスレッドが絡みそうなときはどうなるんだろう?
たぶんめちゃくちゃになりそうだ。
値渡しでは、関数に渡すとその関数内で、変数が消滅してしまう。
結果を渡したければ、
return x; で渡すしかない。
しかし、参照渡しなら、引数にint& とかすると、何個でも渡せられそう。