#include <iostream>
struct abc{
int n;
};
struct A{
abc v;
abc* FuncP(){return &v;}
abc& FuncR(){return v;}
};
int main(){
A a;
abc* p1 = a.FuncP();
abc& r1 = *a.FuncP();
abc& r2 = a.FuncR();
abc* p2 = &a.FuncR();
p1->n = 10;
std::cout << p1->n <<","<< r1.n <<","<< p2->n <<","<< r2.n << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IGFiY3sKICAgaW50IG47Cn07CnN0cnVjdCBBewogICBhYmMgdjsKICAgYWJjKiBGdW5jUCgpe3JldHVybiAmdjt9CiAgIGFiYyYgRnVuY1IoKXtyZXR1cm4gdjt9Cn07CgppbnQgbWFpbigpewogICBBIGE7CiAgIGFiYyogcDEgPSBhLkZ1bmNQKCk7CiAgIGFiYyYgcjEgPSAqYS5GdW5jUCgpOwogICAKICAgYWJjJiByMiA9IGEuRnVuY1IoKTsKICAgYWJjKiBwMiA9ICZhLkZ1bmNSKCk7CiAgIAogICBwMS0+biA9IDEwOwogICBzdGQ6OmNvdXQgPDwgcDEtPm4gPDwiLCI8PCByMS5uIDw8IiwiPDwgcDItPm4gPDwiLCI8PCByMi5uIDw8IHN0ZDo6ZW5kbDsKICAgCiAgIHJldHVybiAwOwp9