Definition
• Structure is a user-defined data type in C which allows you to combine
different data types to store a particular type of record.
• It is somewhat similar to an array. The only difference is that array is
used to store collection similar data types while structure can store
collection of any type of data.
Example
• Structure is used to represent a record.
• Suppose you want to store record of Student which consists of student
name, address, roll number and age. You can define a structure to hold
this information.
• Suppose you want to keep track of your books in a library. You might
want to track the following attributes about each book:
Title
Author
Subject
Book Id
Defining a Structure
• struct keyword is used to define structure.
• struct defines a new data type which is a collection of different types of
data.
• Syntax: struct structure_name
{
//declaration of different data types
};
• Note: The closing braces in the structure type declaration must be
followed by a semicolon (;).
Example of Structure
struct book
{
char name[15];
int price;
int pages;
};
• Here the struct book declares a structure to hold the details of book which consists
of three data fields, namely name, price and pages.
• These fields are called structure elements or members.
• Each member can have different data type, like in this case, name is of char type and
price is of int type etc.
• Book is the name of the structure.
Declaring structure Variables
• It is possible to declare variables of a structure, after the structure is
defined
• Structure variable declaration is similar to the declaration of variables
of any other data types.
• Structure variables can be declared in following ways.
1) Declaring Structure variables separately
struct student
{
char name[20];
int age;
int rollno;
};
struct student s1, s2; //declaring variables of student
2) Declaring structure variables with structure definition
struct student
{
char name[20];
int age;
int rollno;
} s1, s2;
Accessing Structure members
• Structure members can be accessed and assigned values in number of
ways
• Structure members has no meaning independently
• In order to assign values to the structure members, the member name
must be linked with the structure variable using . (dot) operator also called
period or member access operator.
Struct book
{
char name[10];
int price;
} n1, n2;
n1.price=170; or
scanf(“%s”, n1.name)
Structure name
Structure members
Structure variables
Structure Initialization
• We cannot initialize individual members inside structure template.
• By default, structure members are not automatically initialized to 0 or
NULL. Uninitialized structure members will contain garbage values.
• The order of values enclosed in braces must match the order of
members in the structure definition.
Compile time initialization
Code Example:
Code Example
Structures and Functions
• 1. The passing of structure to the function can be done in two ways:
• a) By passing all the elements to the function individually.
• b) By passing the entire structure to the function.
• 2. Also, we can use either
• a) Call by reference or
• b) Call by value
Code Example
Code Example
Code Example
Code Example
Structures and Functions – Returning a Structure
Self-Referential Structures
• Self Referential structures are those
structures that have one or more pointers
which point to the same type of structure,
as their member.
• So, it’s member reference to itself
• In the example ‘link’ is a pointer to a
structure of type ‘node’.
• Hence, the structure ‘node’ is a self
referential structure with ‘link’ as the
referencing pointer.
• The pointer should be initialized properly
before accessing, as by default it contains
garbage value.
Code Example
10 A
30 B x
ob1
ob2

Introduction to structures, how to create structures

  • 1.
    Definition • Structure isa user-defined data type in C which allows you to combine different data types to store a particular type of record. • It is somewhat similar to an array. The only difference is that array is used to store collection similar data types while structure can store collection of any type of data.
  • 2.
    Example • Structure isused to represent a record. • Suppose you want to store record of Student which consists of student name, address, roll number and age. You can define a structure to hold this information. • Suppose you want to keep track of your books in a library. You might want to track the following attributes about each book: Title Author Subject Book Id
  • 3.
    Defining a Structure •struct keyword is used to define structure. • struct defines a new data type which is a collection of different types of data. • Syntax: struct structure_name { //declaration of different data types }; • Note: The closing braces in the structure type declaration must be followed by a semicolon (;).
  • 4.
    Example of Structure structbook { char name[15]; int price; int pages; }; • Here the struct book declares a structure to hold the details of book which consists of three data fields, namely name, price and pages. • These fields are called structure elements or members. • Each member can have different data type, like in this case, name is of char type and price is of int type etc. • Book is the name of the structure.
  • 5.
    Declaring structure Variables •It is possible to declare variables of a structure, after the structure is defined • Structure variable declaration is similar to the declaration of variables of any other data types. • Structure variables can be declared in following ways.
  • 6.
    1) Declaring Structurevariables separately struct student { char name[20]; int age; int rollno; }; struct student s1, s2; //declaring variables of student
  • 7.
    2) Declaring structurevariables with structure definition struct student { char name[20]; int age; int rollno; } s1, s2;
  • 8.
    Accessing Structure members •Structure members can be accessed and assigned values in number of ways • Structure members has no meaning independently • In order to assign values to the structure members, the member name must be linked with the structure variable using . (dot) operator also called period or member access operator. Struct book { char name[10]; int price; } n1, n2; n1.price=170; or scanf(“%s”, n1.name) Structure name Structure members Structure variables
  • 9.
    Structure Initialization • Wecannot initialize individual members inside structure template. • By default, structure members are not automatically initialized to 0 or NULL. Uninitialized structure members will contain garbage values. • The order of values enclosed in braces must match the order of members in the structure definition.
  • 10.
  • 11.
  • 15.
  • 17.
    Structures and Functions •1. The passing of structure to the function can be done in two ways: • a) By passing all the elements to the function individually. • b) By passing the entire structure to the function. • 2. Also, we can use either • a) Call by reference or • b) Call by value
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
    Structures and Functions– Returning a Structure
  • 23.
    Self-Referential Structures • SelfReferential structures are those structures that have one or more pointers which point to the same type of structure, as their member. • So, it’s member reference to itself • In the example ‘link’ is a pointer to a structure of type ‘node’. • Hence, the structure ‘node’ is a self referential structure with ‘link’ as the referencing pointer. • The pointer should be initialized properly before accessing, as by default it contains garbage value.
  • 24.