struct point { int x; int y; } i = {34, 89}, j; struct rect { struct point upper_right; struct point lower_left; }; struct rect a, b; j.x = 83; j.y = 68; a = {i, j}; b = a; b.upper_right.x == a.upper_right.x; /* true */ b.lower_left.y == a.lower_left.y; /* true */ b.lower_left.x == a.lower_left.y; /* false, but allowed */ a == b; /* not allowed */