struct A { int i; bool b; }; void test(A a) { test(a.i); test(a.b); a.i = 2; a.b = false; test(a.i); test(a.b); } void test(A* a) { test(a->i); test(a->b); a->i = 2; a->b = false; test(a->i); test(a->b); } void main() { A a; a.i = 3; a.b = true; test(a); test(a.i); test(a.b); test(&a); test(a.i); test(a.b); int c = 3; }