Structures in C++ allow grouping of related data types into one data type. A structure defines members of different data types within curly braces. Structure variables can be declared and members accessed using dot operator. Arrays of structures can be used to store multiple structure objects. References in C++ provide an alias for an existing variable and any changes made using reference are reflected in original variable. Function parameters passed by value cannot swap values but passing by reference allows swapping of values.