In C programming language, a structure is a collection of different datatype variables, which are grouped together under a single name.
Declaration and initialization of structures
The general form of a structure declaration is as follows −
datatype member1; struct tagname{ datatype member2; datatype member n; };
Here,
- struct is a keyword.
- tagname specifies the name of structure.
- member1, member2 specifies the data items that make up structure.
For example,
struct book{ int pages; char author [30]; float price; };
Structure variables
There are three methods of declaring structure variables, which are as follows −
First method
struct book{ int pages; char author[30]; float price; }b;
Second method
struct{ int pages; char author[30]; float price; }b;
Third method
struct book{ int pages; char author[30]; float price; }; struct book b;
Initialization and accessing of structures
The link between a member and a structure variable is established by using a member operator (or) a dot operator.
Initialization can be done in the following methods −
First method
struct book{ int pages; char author[30]; float price; } b = {100, “balu”, 325.75};
Second method
struct book{ int pages; char author[30]; float price; }; struct book b = {100, “balu”, 325.75};
Third method by using a member operator
struct book{ int pages; char author[30]; float price; } ; struct book b; b. pages = 100; strcpy (b.author, “balu”); b.price = 325.75;
Example
Following is the C program for the comparison of structure variables −
struct class{ int number; char name[20]; float marks; }; main(){ int x; struct class student1 = {001,"Hari",172.50}; struct class student2 = {002,"Bobby", 167.00}; struct class student3; student3 = student2; x = ((student3.number == student2.number) && (student3.marks == student2.marks)) ? 1 : 0; if(x == 1){ printf("\nstudent2 and student3 are same\n\n"); printf("%d %s %f\n", student3.number, student3.name, student3.marks); } else printf("\nstudent2 and student3 are different\n\n"); }
Output
When the above program is executed, it produces the following output −
student2 and student3 are same 2 Bobby 167.000000