参照渡しについて。

  • 型のすぐ後ろに&をつける。(例:int& i)
  • 参照渡しとは遠隔操作であり、エイリアスである。もっというと、アドレス乗っ取りである。
  • ポインタに似ているが全然違う

#include 
using 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& とかすると、何個でも渡せられそう。