#include <iostream>
using namespace std;
struct Ref
{
int &r;
Ref(int &r):r(r) {}
void change(int &r) { *((int**)this)=&r; }
void show() { cout<<&r<<'\t'<<r<<endl; }
};
int main()
{
int a=0;
Ref r(a);
r.show();
int x=123456789; r.change(x); r.show();
int y=987654321; r.change(y); r.show();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFJlZgogIHsKICAgaW50ICZyOwogICBSZWYoaW50ICZyKTpyKHIpIHt9CiAgIHZvaWQgY2hhbmdlKGludCAmcikgeyAqKChpbnQqKil0aGlzKT0mcjsgfQogICB2b2lkIHNob3coKSB7IGNvdXQ8PCZyPDwnXHQnPDxyPDxlbmRsOyB9CiAgfTsKIAppbnQgbWFpbigpCiAgewogICBpbnQgYT0wOwogICBSZWYgcihhKTsKICAgci5zaG93KCk7CiAgIGludCB4PTEyMzQ1Njc4OTsgci5jaGFuZ2UoeCk7IHIuc2hvdygpOwogICBpbnQgeT05ODc2NTQzMjE7IHIuY2hhbmdlKHkpOyByLnNob3coKTsKICAgcmV0dXJuIDA7CiAgfSA=