const int* wusi(int i) {
    return &i;
}

const int wusi2(int i) {
    return i;
}

struct B {
    int b;
};

struct A {
    int a;
    B b;
};

void wusi(const A* a) {
    //a->a += 3;
    //a->b.b += 3;
    test(a->a);
    test(a->b.b);
}

void main() {
    const int i = 3;
    const int* w = &i;
    int a = i;
    a = i;
    const int* b = nullptr;
    const int** c = &b;
    const int* d = *c;
    b = wusi(3);
    a = wusi2(3);
    
    int* test = new int[5];
    delete test;
    
    //i += 3;
    
    int* e = nullptr;
    b = e;
    
    test(i + 1);
    
    test(e == d);
    test(e != d);
    
    A s;
    s.a = 3;
    s.b.b = 5;
    wusi(&s);
}