#include<iostream>
#include <cmath>
#include<string>
using namespace std;
class C { public: int a; char b; static int c; };
int C::c = 2;
int main(){
C c;
printf("&C::c = %p, &c.c = %p\n", &C::c, &c.c);
cout << &C::c << endl;
cout << typeid(&C::c).name() << endl << endl;
printf("&C::a = %d, &C::b = %d\n", &C::a, &C::b);
printf("&C::a = %p, &C::b = %p\n", &C::a, &C::b);
cout << "&C::a = " << &C::a << " &C::b = " << &C::b << endl;
cout << typeid(&C::a).name() << endl << endl;
printf("&c.a = %p, &c.b = %p\n", &c.a, &c.b);
cout << "&c.a = " << &c.a << " &c.b = " << (void*)&c.b << endl;
cout << typeid(&c.a).name() << endl << endl;
int *p2 = 0;
int C::*p = 0;
printf("p = %p, p2 = %p\n", p);
cout << (&C::a == p) << endl;
getchar();
return 0;
}