Structures in C allow grouping of different data types together under one name. A structure contains members of possibly different types, while an array contains elements all of the same type. To declare a structure, the struct keyword is used followed by a tag name and a list of members. Individual members can then be accessed using the dot operator. Structures can also be nested, so members of one structure can be other structures. Structures provide a way to bundle data together and are useful for representing complex, real world entities like an account with fields for number, name, balance etc.