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