This documentation is archived and is not being maintained.


The struct keyword defines a structure type and/or a variable of a structure type.

struct [tag] { member-list } [declarators];
[struct] tag declarators;

A structure type is a user-defined composite type. It is composed of fields or members that can have different types.

In C++, a structure is the same as a class except that its members are public by default.

Using a Structure

In C, you must explicitly use the struct keyword to declare a structure. In C++, this is unnecessary once the type has been defined.

You have the option of declaring variables when the structure type is defined by placing one or more comma-separated variable names between the closing brace and the semicolon.

For related information, see class, union, and enum.

Example 1

// struct1.cpp

struct PERSON   // Declare PERSON struct type


   int   age;   // Declare member types

   long ss;

   float weight;

   char name[25];

} family_member;   // Define object of type PERSON

int main()


   struct PERSON sister;   // C style structure declaration

   PERSON brother;   // C++ style structure declaration

   sister.age = 13;   // assign values to members

   brother.age = 7;


Structure variables can be initialized. The initialization for each variable must be enclosed in braces.

Example 2

// struct2.cpp
struct POINT            // Declare POINT structure
   int x;               // Define members x and y
   int y;
} spot = { 20, 40 };    // Variable spot has
                        //     values x = 20, y = 40
struct POINT there;     // Variable there has POINT type
struct CELL             // Declare CELL bit field
   unsigned character  : 8;  // 00000000 ????????
   unsigned foreground : 3;  // 00000??? 00000000
   unsigned intensity  : 1;  // 0000?000 00000000
   unsigned background : 3;  // 0???0000 00000000
   unsigned blink      : 1;  // ?0000000 00000000
} screen[25][80];       // Array of bit fields 

int main()

See Structure Declarations (C Language Reference), Anonymous Structures, and Unsized Arrays in Structures for more information.

See Also

Classes, Structures, and Unions | C++ Keywords