#include <iostream>
#include <cstdio>
using namespace std;
int main( int argc, char ** argv) {
int a = 10 , d = 9 ;
int & b = a;
int * c = & a;
int * e;
e = & a;
a = a + 1 ;
b + = 1 ;
* e = 20 ;
cout << "a addr : " << & a << " , a val : " << a << endl;
cout << "b addr : " << & b << " , a val : " << b << endl;
cout << "c addr : " << & c << " , c val : " << * c << endl;
cout << "c addr : " << c << " , c val : " << * c << endl;
cout << "d addr : " << & e << " , e val : " << * e << endl;
const int * cptr1;
cptr1 = & a;
// *cptr1 = 7788; -> error
cout << "*c = " << * cptr1 << endl;
cptr1 = & d;
cout << "*c = " << * cptr1 << endl;
int * const cptr2 = & a;
cout << "*c = " << * cptr2 << endl;
* cptr2 = 78 ;
cout << "*c = " << * cptr2 << endl;
* cptr2 = 10 ;
// cptr2 = &b; -> error
const int * const cptr3 = & a;
cout << "*c = " << * cptr3 << endl;
// *cptr3 = 7788; -> error
// cptr2 = &b; -> error
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndil7CiAgICBpbnQgYSA9IDEwLCBkID0gOTsKICAgIGludCAmYiA9IGE7CiAgICBpbnQgKmMgPSAmYTsKICAgIGludCAqZTsKICAgIGUgPSAmYTsKICAgIGEgPSBhICsgMTsKICAgIGIgKz0gMTsKICAgICplID0gMjA7CiAgICBjb3V0IDw8ICJhIGFkZHIgOiAiIDw8ICZhIDw8ICIgLCBhIHZhbCA6ICIgPDwgYSA8PCBlbmRsOwogICAgY291dCA8PCAiYiBhZGRyIDogIiA8PCAmYiA8PCAiICwgYSB2YWwgOiAiIDw8IGIgPDwgZW5kbDsKICAgIGNvdXQgPDwgImMgYWRkciA6ICIgPDwgJmMgPDwgIiAsIGMgdmFsIDogIiA8PCAqYyA8PCBlbmRsOwogICAgY291dCA8PCAiYyBhZGRyIDogIiA8PCBjIDw8ICIgLCBjIHZhbCA6ICIgPDwgKmMgPDwgZW5kbDsKCWNvdXQgPDwgImQgYWRkciA6ICIgPDwgJmUgPDwgIiAsIGUgdmFsIDogIiA8PCAqZSA8PCBlbmRsOwoKICAgIGNvbnN0IGludCAqIGNwdHIxOwogICAgY3B0cjEgPSAmYTsKICAgIC8vICpjcHRyMSA9IDc3ODg7ICAtPiBlcnJvcgogICAgY291dCA8PCAiKmMgPSAiIDw8ICpjcHRyMSA8PCBlbmRsOwogICAgY3B0cjEgPSAmZDsKICAgIGNvdXQgPDwgIipjID0gIiA8PCAqY3B0cjEgPDwgZW5kbDsKCiAgICBpbnQgKmNvbnN0IGNwdHIyID0gJmE7CiAgICBjb3V0IDw8ICIqYyA9ICIgPDwgKmNwdHIyIDw8IGVuZGw7CiAgICAqY3B0cjIgPSA3ODsKICAgIGNvdXQgPDwgIipjID0gIiA8PCAqY3B0cjIgPDwgZW5kbDsKICAgICpjcHRyMiA9IDEwOwogICAgLy8gY3B0cjIgPSAmYjsgIC0+IGVycm9yCgogICAgY29uc3QgaW50ICpjb25zdCBjcHRyMyA9ICZhOwogICAgY291dCA8PCAiKmMgPSAiIDw8ICpjcHRyMyA8PCBlbmRsOwogICAgLy8gKmNwdHIzID0gNzc4ODsgIC0+IGVycm9yCiAgICAvLyBjcHRyMiA9ICZiOyAgLT4gZXJyb3IKCiAgICByZXR1cm4gMDsKfQ==