Structures allow grouping of related data types together under one name. They can contain members of different data types. Structures can be nested by defining one structure as a member of another. Members are accessed using the dot operator. Structures are initialized when declared and one structure can be assigned to another of the same type by copying member values. Examples demonstrate declaring, defining, initializing, accessing, and assigning structures.