contain multiple values, are all examples of complex types. The primitive types
provided by a language may not be sucient for solving large complex problems.
Thus, most languages allow for the construction of additional data types, known
as user-dened types since they are dened by the programmer and not the
language. Some of these data types can themselves be very complex.