Structures allow grouping of different data types under one name. To define a structure, the struct keyword is used followed by the structure tag name and a list of member variables enclosed in curly braces. Structures can be used to represent records in a database. Arrays of structures allow storing multiple records as array elements. Pointers to structures can be defined and used to access structure members using the arrow operator ->. Nested structures allow creating complex data types by defining one structure as a member of another structure.