Question: can you explain the difference in meaning between:

q[0].a = 5;

ANSWER: 'q' is an array of structs. 'a' is a member of that struct type.

and

q.a[0] = 5;

ANSWER: 'q' is a struct. 'a' (an array) is a member of that struct.