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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Lecture18 structurein c.ppt

  • 1.
    Lecturer, B VPatel 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 ●Arrayis 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 ●Astructure 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 ●Generalform 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 ●Membersof 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 Thelink 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 Wecan 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 otherdata 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 languagedoes 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 initializingstructure ●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 ComparingStructure 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 ●Likearray 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 Structurewithin 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 Aninner 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 standsfor "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 doyou 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