#include <iostream>

struct ManyIntegers {

    int a,b,c,d;
};

int main () {

    union {
        int ManyIntegers::* p;
        unsigned long l;
    } x;


    x.p = &ManyIntegers::a;
    std::cout << "p = &ManyIntegers::a = " << (x.l) << std::endl;

    x.p = &ManyIntegers::b;
    std::cout << "p = &ManyIntegers::b = " << (x.l) << std::endl;

    x.p = &ManyIntegers::c;
    std::cout << "p = &ManyIntegers::c = " << (x.l) << std::endl;

    x.p = &ManyIntegers::d;
    std::cout << "p = &ManyIntegers::d = " << (x.l) << std::endl;

    return 0;
}
