A structure is a collection of one or more data members possibly of different data types, grouped together under a single name for convenient handling.
Defining a Structure:
In general terms, the composition of a structure may be defined as:
struct tag{
member 1;
member 2;
---
member m;
};
In the above declaration, struct is a required keyword, tag is a name that identifies of this type, and member1, member2, --- member m are individual member declarations.
The individual members can be ordinary variables, pointers, arrays, or other structures. The member names within a particular structure must be distinct from one another, through a member name can be the same as the name of a variable defined outside of the structure.
Once the composition of the structure has been defined, individual structure – type variables can be declared as follows.
storage – class struct tag variable 1, variable 2, --- , variable n;
Where storage – class is an optional storage class specifier, struct is a required keyword, tag is the name that appeared in the structure type declaration, and variable 1, variable 2, ---, variable n are structure variables of type tag.
Ex:- struct account{
int acct_no;
char acct_type;
char name[80];
float balance;
};
We can declare the structure variables oldcustomer and newcustomer as follows:
Ex:- struct account oldcustomer, newcustomer;
Oldcustomer and newcustomer are variables of type account.
To combine the declaration of the structure composition with that of the structure variables, as shown below.
storage – class struct tag{
member 1;
member 2;
---
member m; }variable 1, variable 2, ---, variable n;
The tag is optional in this situation.
The members of a structures variable can be assigned initial values as same as the elements of an array. The initial values must appear in the order in which they will be assigned to their corresponding structure members, enclosed in braces and separated by commas. The general from is
storage – class struct tag variable={ value 1, value 2, ---, value m}
Where value1 reference to the value of the first member, value2 refers to the value of the second member, and so on.
A structure may be defined as a member of another structure. In such situations, the declaration of the embedded structure must appear before the declaration of the outer structure.
struct date{
int month;
int day;
int year;
};
struct account{
int acct_no;
char acct_type;
char name[80];
float balance;
struct date lastpayment;
}oldcustomer, newcustomer;
The structure account now contains another structure, date, as one of its members. Not that the declaration of date precedes the declaration of account.
We can define an array of structures, that is, an array in which each element is a structure.
Ex:- struct date{
int month;
int day;
int year;
};
struct account{
int acct_no;
char acct_type;
char name[80];
float balance;
struct date lastpayment;