Programming languages - C Programming

Back to Course

Lesson Description

Lession - #17 C Structure

Defining a Structure

To define a structure, you must use the struct statement. The struct statement defines a new data type, with more than one member. The format of the struct statement is as follows −

struct [structure tag] {

   member definition;
   member definition;
   member definition;
} [one or more structure variables];  
The structure tag is optional and each member definition is a normal variable definition, such as int i; or float f; or any other valid variable definition. At the end of the structure's definition, before the final semicolon, you can specify one or more structure variables but it is optional. Here is the way you would declare the Book structure −

struct Books {
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book;  
Accessing Structure Members

To access any member of a structure, we use the member access operator (.>
. The member access operator is coded as a period between the structure variable name and the structure member that we wish to access. You would use the keyword struct to define variables of structure type. The following example shows how to use a structure in a program −

#include <stdio.h>
#include <string.h>
struct Books {
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
int main( >
{ struct Books Book1; /* Declare Book1 of type Book */ struct Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ strcpy( Book1.title, "C Programming">
; strcpy( Book1.author, "Amar Gill">
; strcpy( Book1.subject, "C Programming Tutorial">
; Book1.book_id = 2007059; /* book 2 specification */ strcpy( Book2.title, "Telecom Billing">
; strcpy( Book2.author, "Zara Ali">
; strcpy( Book2.subject, "Telecom Billing Tutorial">
; Book2.book_id = 6495700; /* print Book1 info */ printf( "Book 1 title : %s\n", Book1.title>
; printf( "Book 1 author : %s\n", Book1.author>
; printf( "Book 1 subject : %s\n", Book1.subject>
; printf( "Book 1 book_id : %d\n", Book1.book_id>
; /* print Book2 info */ printf( "Book 2 title : %s\n", Book2.title>
; printf( "Book 2 author : %s\n", Book2.author>
; printf( "Book 2 subject : %s\n", Book2.subject>
; printf( "Book 2 book_id : %d\n", Book2.book_id>
; return 0; }
When the above code is compiled and executed, it produces the following result −

Book 1 title : C Programming
Book 1 author : Amar Gill
Book 1 subject : C Programming Tutorial
Book 1 book_id : 2007059
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutorial
Book 2 book_id : 6495700