Structures allow for grouping together of related data types under a single name. A structure contains members of different data types and can be declared using the keyword "struct". Structure variables are declared by specifying the structure tag name followed by a list of members separated by commas. Individual members can be accessed using the dot operator. Arrays of structures declare multiple structure variables, and structures can also contain array members. Structures can be passed as arguments to functions either by passing each member, passing a copy of the entire structure, or by passing a pointer to the structure.