Lecture18 structurein c.ppt

19
STRUCTURE IN ‘C’ Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar Prakash Khaire Prakash Khaire Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar

description

structure in C

Transcript of Lecture18 structurein c.ppt

  • 1. Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar STRUCTURE IN CPrakash KhairePrakash Khaire Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar
  • 2. Structure in CArray is collection of items with identical data typeC Supports a constructed data type known asstructureIt is user-defined data typeIt wraps different data typeIt 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 - StructureA structure is collections of more than one variables withdifferent data type like int, float & charExample :char name[25];int sci, eng, maths;float per;PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 4. Defining a structureGeneral form or syntaxstruct tag_name Structure tag name{ datatype variable; datatype variable; datatype variable; structure elements --------------------- ---------------------} list of variables; Structure VariablesPrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 5. Examplestruct 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(); }PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 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; PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 7. Structures in CMembers of the structure are themselves not avariable. They do not occupy any memory andtill associate with structure variable as book.A structure is usually defines before main alongwith macro definitions. In such cases the structure assumes globalstatus and all the functions can access thestructure.PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 8. Accessing Structure MembersThe link between a member and a variable is established using themember operator . Which is known as dot operator or period operator.For example:Book1.priceIs the variable representing the price of book1 and can be treated like anyother ordinary variable. We can use scanf statement to assign values likescanf(%s,book1.file);scanf(%d,&book1.pages);PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 9. Accessing Structure MembersWe can assign variables to the members of book1strcpy(book1.title,Programming ANSI C);strcpy(book1.author,Balagurusamy);book1.pages=250;book1.price=28.50;PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 10. Structure InitializationLike 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};PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 11. Structure InitializationC language does not permit the initialization of individualstructure members within the template.At compile time initialization of structure variable musthave the following elements1. The Keyword struct2. The structure tag name3. The name of the variable to be declared4. The assignment operator5. A set of values for the members of the structure variable, separated by commas and enclosed inbraces6. A terminating semicolonPrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 12. Rules for initializing structureWe cannot initialize individual members inside the structure templateThe order of values enclosed in braces must match the order ofmembers in the structure definitionIt is permitted to have partial initilization. We can initialize only the firstfew members and leave the remaining blank. The uninitializedmembers 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 numbers0 for characters and stringsPrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 13. Copying and Comparing StructureVariablesTwo variables of the same structure type can becopied the same way as ordinary variablesbook1 = book2;There is no way to compare entire structure, wecan 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);PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 14. Structure in C Entire structures (not just pointers to structures) may be passed as function arguments, assigned tovariables, etc. Interestingly, they cannot be compared using == Unlike arrays, structures must be defined before, its variable are usedPrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 15. Array of structureLike array of int, float or char, we can also have array of structureWe can use single-dimensional or multi-dimensional arraysExamplestruct 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 studentPrakash Khaire Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar
  • 16. Structures within structureStructure 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 structureAn inner most member in a nested structurecan be accessed by chaining all theconcerned structure variables with themember using dot operator.Exampleemployee.dob.dayemployee.dob.monthemployee.dob.yearPrakash Khaire Lecturer, B V Patel Inst. of BMC & IT, GopalVidyanagar
  • 18. typedef DeclarationIt stands for "type definition"keyword allows the programmer to create newnames for types such as int or, moreIt refers to definition of data types which can beused by the users to declare their own datadefinitions names.PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire
  • 19. syntaxSo, how do you actually declare a typedef? All you must do is providethe old type name followed by the type that should represent itthroughout the code. Heres how you would declare size_t to be anunsigned integer typedef unsigned int size_t;PrakashPrakash Khaire Lecturer, B V Patel Inst. of BMC & BMC & IT, GopalVidyanagar Lecturer, B V Patel Inst. of IT, GopalVidyanagarKhaire