1. Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar
STRUCTURE IN ‘C’
Prakash Khaire
Prakash Khaire Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar
2. Structure in C
●Array is collection of items with identical data type
●C Supports a constructed data type known as
structure
●It is user-defined data type
●It wraps different data type
●It is way of extending new programming language
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
3. Definition - Structure
●A structure is collections of more than one variables with
different data type like int, float & char
Example :
char name[25];
int sci, eng, maths;
float per;
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
4. Defining a structure
●General form or syntax
struct tag_name Structure tag name
{
datatype variable;
datatype variable;
datatype variable; structure elements
---------------------
---------------------
} list of variables; Structure Variables
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
5. Example
struct book_bank void main()
{ {
char title[20]; struct book_bank x,y, MyBooks[5];
int i,j;
char author[15]; clrscr();
int pages; ---------------
float price; ---------------
---------------
}; getch();
}
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
6. Declaring structure variables
We can declare a structure variable only when a structure is
●
defined
Declaration of structure variable is similar to the declaration
●
of variable of any other data type
It includes following points.
●
●The keyword struct
●The structure tag name
●List of variable names separated by commas
●A terminating semicolon
●For example
struct book_bank book1, book2, book3;
●
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
7. Structures in C
●Members of the structure are themselves not a
variable. They do not occupy any memory and
till associate with structure variable as book.
●A structure is usually defines before main along
with macro definitions.
● In such cases the structure assumes global
status and all the functions can access the
structure.
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
8. Accessing Structure Members
The link between a member and a variable is established using the
●
member operator ‘.’ Which is known as dot operator or period operator.
For example:
Book1.price
Is the variable representing the price of book1 and can be treated like any
●
other ordinary variable. We can use scanf statement to assign values like
scanf(“%s”,book1.file);
scanf(“%d”,&book1.pages);
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
9. Accessing Structure Members
We can assign variables to the members of book1
●
strcpy(book1.title,”Programming ANSI C”);
strcpy(book1.author,”Balagurusamy”);
book1.pages=250;
book1.price=28.50;
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
10. Structure Initialization
Like other data type we can initialize structure when we declare them
●
A structure variable can be initialized at compile time
struct book_bank
{
char title[20];
char author[15];
int pages;
float price;
} book1={“ANSI C”,”Balaguruswamy”,430,200.0};
or struct book_bank book1 = {“ANSI C”,”Balaguruswamy”,430,200.0};
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
11. Structure Initialization
C language does not permit the initialization of individual
●
structure members within the template.
At compile time initialization of structure variable must
●
have the following elements
1. The Keyword struct
2. The structure tag name
3. The name of the variable to be declared
4. The assignment operator
5. A set of values for the members of the structure variable, separated by commas and enclosed in
braces
6. A terminating semicolon
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
12. Rules for initializing structure
●We cannot initialize individual members inside the structure template
●The order of values enclosed in braces must match the order of
members in the structure definition
●It is permitted to have partial initilization. We can initialize only the first
few members and leave the remaining blank. The uninitialized
members should be only at the end of the list.
●The uninitialized members will be assigned default values as follows.
●Zero for integer and floating point numbers
●‘0’ for characters and strings
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
13. Copying and Comparing Structure
Variables
Two variables of the same structure type can be
●
copied the same way as ordinary variables
book1 = book2;
There is no way to compare entire structure, we
●
can only compare element by element
/* this is not allowed */
if(book1==book2) /* this is not allowed */;
/* where as we can compare element by element */
if(book1.pages == book2.pages);
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
14. Structure in C
Entire structures (not just pointers to structures)
●
may be passed as function arguments, assigned to
variables, etc.
Interestingly, they cannot be compared using ==
●
Unlike arrays, structures must be defined before, its
●
variable are used
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
15. Array of structure
●Like array of int, float or char, we can also have array of structure
●We can use single-dimensional or multi-dimensional arrays
●Example
struct student
{ Subject contains three elements,
char name[20]; subject[0], subject[1] and subject[2].
char city[15]; These elements can be accessed as
int subject[3]; followed
float per; stud[1].subject[2]
}stud[10]; This will refer to the marks of third
subject of second student
Prakash Khaire Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar
16. Structures within structure
Structure within structure is known as nested structure
●
struct date struct company
{ // members of structure {
int day; char name[20];
int month; long int employee_id;
int year; char sex[5];
}; int age;
struct company
{ struct
char name[20]; {
long int employee_id; int day;
char sex[5]; int month;
int age; int year;
struct date dob; }dob;
}; }employee;
Prakash Khaire Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar
17. Structure within structure
An inner most member in a nested structure
●
can be accessed by chaining all the
concerned structure variables with the
member using dot operator.
Example
●
employee.dob.day
employee.dob.month
employee.dob.year
Prakash Khaire Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar
18. typedef Declaration
It stands for "type definition"
●
keyword allows the programmer to create new
●
names for types such as int or, more
It refers to definition of data types which can be
●
used by the users to declare their own data
definitions names.
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire
19. syntax
●So, how do you actually declare a typedef? All you must do is provide
the old type name followed by the type that should represent it
throughout the code. Here's how you would declare size_t to be an
unsigned integer
● typedef unsigned int size_t;
Prakash
Prakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar
Lecturer, B V Patel Inst. of IT, GopalVidyanagar
Khaire