When you have arrays of structs or structs with arrays, chain operators. Use brackets for array indexing, dots for member access. Index first to get the struct, then dot for member. Example: points[3].x = 10; means "get the struct at index 3, then access its x member." For struct with array: s.grades[2] means "get grades, then index position 2." Think left to right.
points[3].x reads as "from points array, take element 3, from that element, take member x." Each step narrows down to the data you want.