Objectives
Define Structure
Create Structure variable
Access structure member using . operator
Array of Structures, passing structure to functions
Nested Structures
CSC COMPUTER EDUCATION,
M.K.B.NAGAR
Structure are collection of different datatype
grouped together under a single variable name for
convienient handling. 'struct' is a keyword, struct type
is a name which identifies the structure.
syntax : struct <structure name or tagname>
{
datatype member1;
datatype member2;
};
struct book
{
int pages;
char bookname[10];
char author[20];
float price;
};
CSC COMPUTER EDUCATION,
M.K.B.NAGAR
J A V A H A U N T E R 467
Book Name Author Name
Pages
Individual structure type variables can be declared as
follows:
Syntax :
struct structurename variable1, variable2, ..... variable n;
Example
Struct book b1; /* b1 is a structure variable name */
Member variables can be accessed using the dot or period
operator as follows:
Syntax :
Stru_variablename.membername;
Example
B1.pages=400;
B1.price=450.00;
Write a Program the create the Account Details using Structure?
#include<stdio.h>
struct amount
{
int ac_no;
char name[10];
int balance;
};
void main()
{
struct amount v;
printf("nEnter the account Details");
scanf("%d%s%d",&v.ac_no,&v.name, &v.balance);
printf("The values are %d%s%d",v.ac_no,
v.name, v.balance);
printf("%d",sizeof(struct amount));
}
CSC COMPUTER EDUCATION,
M.K.B.NAGAR
Write a program to create student structure
#include<stdio.h>
struct stud
{
int id;
char name[20];
int mark1,mark2,mark3;
int total;
int avg;
}b;
void main()
{
printf("nEnter the student details");
scanf("%d %s %d %d %d",&b.id,&b.name,
&b.mark1,&b.mark2,&b.mark3);
b.total=b.mark1+b.mark2+b.mark3;
b.avg=b.total/3;
printf("%d %s %d %d %d",b.id,b.name, b.mark1, b.mark2,
b.mark3);
}
Initializing Structures
Like variables and arrays, structure variables can be initialized at the
beginning of the program.
Consider the following program :
The variable emp1 and emp2 of the type employee can be initialized
when it is declared as
Array of structures are defined as a group of data of
different data types stored in a consecutive memory location with a
common variable name.
For Example,
struct employee
{
int empno;
char empname[20];
char deptname[10];
float salary;
}emp[5];
Passing Structures as Arguments
A structure variable can be passed as an argument to
another function
This is a useful facility and it is used to pass groups of
logically related data items together instead of passing
them one by one.
CSC COMPUTER EDUCATION,
M.K.B.NAGAR
/*PASSING STRUCTURES TO FUNCTION ARGUMENTS*/
#include<stdio.h>
struct record
{
char *name;
int acct_no;
char acct_type;
float bal;
};
struct record fun(struct record);
void main(){
struct record c;
printf("n Enter Details");
scanf("%s%d%c%f",c.name,&c.acct_no, &c.acct_type, &c.bal);
c=fun(c); //calling
printf("n%s %d %c %f",c.name,c.acct_no,c.acct_type,c.bal);
}
struct record fun(struct record r)
{
r.name="Raja";
r.acct_no=1567;
r.acct_type='R';
r.balance=900.00;
return(r);
}
Passing the structure member as a
parameter to the function
#include<stdio.h>
#include<stdlib.h>
typedef struct stud
{
int roll_no;
char name[20];
float marks;
}student;
student st;
void print_rec(int,char [],float);
void main()
{
char ans;
clrscr();
do
{
printf("n t Enter the record");
printf("n Enter the Roll Number");
scanf("%d",&st.roll_no);
printf("n Enter the Name");
scanf("%s",st.name);
printf("n Enter the Marks");
scanf("%f",&st.marks);
print_rec(st.roll_no,st.name,st.marks);
printf("n Do U Want to store the More
record ");
ans=getche();
}while(ans=='y');
}
void print_rec(int r,char n[],float m)
{
printf("n You have Entered Following
record");
printf("n %d %s %f",r,n,m);
}
Nested Structure
A structure within another structure is called Nesting of
structures.The declaration of the embedded structure must appear before
the declaration of the outer structure.
Example
Struct date
{
int month;
int day;
int year;
};
struct account
{
int acc_no;
char name[40];
char acc_type;
float balance;
struct date dob;
} customer;
/* NESTED STRUCTURES
A structure within another
structure */
#include<stdio.h>
struct dob {
int date;
int month;
int year; };
struct stud{
int sno;
char sname[10];
struct dob sdob;
char sex; };
void main()
{
struct stud s;
clrscr();
printf("enter the snon");
scanf("%d",&s.sno);
printf("enter the snamen");
scanf("%s",s.sname);
printf("enter the dobn");
scanf("%d%d%d %c",&s.sdob.date,
&s.sdob.month,&s.sdob.year,&s.sex);
printf("%dt %st %d %d %d t
%c", s.sno, s.sname, s.sdob.date,
s.sdob.month, s.sdob.year, s.sex);
getch();
}
Session Summary
 The keyword “struct” begins the structure definition followed by the tag(i.e strcture
name) within the braces the structure members are declared
The structure definition create a new data type that can be used to declare variables.
 A member of structure is always referred and accessed using the member access
operator(.) via the structure variable name
 A structure containing a member that is a pointer to the same structure type is called
as a self referential structure.
 The structure pointer operator () is used when accessing a member of a structure via
a pointer to the structure
EXERCISES
1. Define a structure in C that contains the following:
a. An integer quantity called “Won”
b. An integer quantity called “Lost”
c. A floating quantity called “Lost”
d. An array of characters to hold the name
Include the user defined data type record within the definition?
2. Define a structure called student that will describe the following information student
name,class,rollno, subject marks & total. Using student declare an array stu_list
with 30 elements. Write program in C to read the information about all the 30
students and to display the information?

structure.ppt

  • 2.
    Objectives Define Structure Create Structurevariable Access structure member using . operator Array of Structures, passing structure to functions Nested Structures
  • 3.
    CSC COMPUTER EDUCATION, M.K.B.NAGAR Structureare collection of different datatype grouped together under a single variable name for convienient handling. 'struct' is a keyword, struct type is a name which identifies the structure. syntax : struct <structure name or tagname> { datatype member1; datatype member2; }; struct book { int pages; char bookname[10]; char author[20]; float price; };
  • 4.
    CSC COMPUTER EDUCATION, M.K.B.NAGAR JA V A H A U N T E R 467 Book Name Author Name Pages
  • 5.
    Individual structure typevariables can be declared as follows: Syntax : struct structurename variable1, variable2, ..... variable n; Example Struct book b1; /* b1 is a structure variable name */ Member variables can be accessed using the dot or period operator as follows: Syntax : Stru_variablename.membername; Example B1.pages=400; B1.price=450.00;
  • 6.
    Write a Programthe create the Account Details using Structure? #include<stdio.h> struct amount { int ac_no; char name[10]; int balance; }; void main() { struct amount v; printf("nEnter the account Details"); scanf("%d%s%d",&v.ac_no,&v.name, &v.balance); printf("The values are %d%s%d",v.ac_no, v.name, v.balance); printf("%d",sizeof(struct amount)); }
  • 7.
    CSC COMPUTER EDUCATION, M.K.B.NAGAR Writea program to create student structure #include<stdio.h> struct stud { int id; char name[20]; int mark1,mark2,mark3; int total; int avg; }b; void main() { printf("nEnter the student details"); scanf("%d %s %d %d %d",&b.id,&b.name, &b.mark1,&b.mark2,&b.mark3); b.total=b.mark1+b.mark2+b.mark3; b.avg=b.total/3; printf("%d %s %d %d %d",b.id,b.name, b.mark1, b.mark2, b.mark3); }
  • 8.
    Initializing Structures Like variablesand arrays, structure variables can be initialized at the beginning of the program. Consider the following program : The variable emp1 and emp2 of the type employee can be initialized when it is declared as
  • 9.
    Array of structuresare defined as a group of data of different data types stored in a consecutive memory location with a common variable name. For Example, struct employee { int empno; char empname[20]; char deptname[10]; float salary; }emp[5];
  • 10.
    Passing Structures asArguments A structure variable can be passed as an argument to another function This is a useful facility and it is used to pass groups of logically related data items together instead of passing them one by one.
  • 11.
    CSC COMPUTER EDUCATION, M.K.B.NAGAR /*PASSINGSTRUCTURES TO FUNCTION ARGUMENTS*/ #include<stdio.h> struct record { char *name; int acct_no; char acct_type; float bal; }; struct record fun(struct record); void main(){ struct record c; printf("n Enter Details"); scanf("%s%d%c%f",c.name,&c.acct_no, &c.acct_type, &c.bal); c=fun(c); //calling printf("n%s %d %c %f",c.name,c.acct_no,c.acct_type,c.bal); }
  • 12.
    struct record fun(structrecord r) { r.name="Raja"; r.acct_no=1567; r.acct_type='R'; r.balance=900.00; return(r); }
  • 13.
    Passing the structuremember as a parameter to the function #include<stdio.h> #include<stdlib.h> typedef struct stud { int roll_no; char name[20]; float marks; }student; student st; void print_rec(int,char [],float); void main() { char ans; clrscr(); do { printf("n t Enter the record"); printf("n Enter the Roll Number"); scanf("%d",&st.roll_no); printf("n Enter the Name"); scanf("%s",st.name); printf("n Enter the Marks"); scanf("%f",&st.marks); print_rec(st.roll_no,st.name,st.marks); printf("n Do U Want to store the More record "); ans=getche(); }while(ans=='y'); } void print_rec(int r,char n[],float m) { printf("n You have Entered Following record"); printf("n %d %s %f",r,n,m); }
  • 14.
    Nested Structure A structurewithin another structure is called Nesting of structures.The declaration of the embedded structure must appear before the declaration of the outer structure. Example Struct date { int month; int day; int year; }; struct account { int acc_no; char name[40]; char acc_type; float balance; struct date dob; } customer;
  • 15.
    /* NESTED STRUCTURES Astructure within another structure */ #include<stdio.h> struct dob { int date; int month; int year; }; struct stud{ int sno; char sname[10]; struct dob sdob; char sex; }; void main() { struct stud s; clrscr(); printf("enter the snon"); scanf("%d",&s.sno); printf("enter the snamen"); scanf("%s",s.sname); printf("enter the dobn"); scanf("%d%d%d %c",&s.sdob.date, &s.sdob.month,&s.sdob.year,&s.sex); printf("%dt %st %d %d %d t %c", s.sno, s.sname, s.sdob.date, s.sdob.month, s.sdob.year, s.sex); getch(); }
  • 16.
    Session Summary  Thekeyword “struct” begins the structure definition followed by the tag(i.e strcture name) within the braces the structure members are declared The structure definition create a new data type that can be used to declare variables.  A member of structure is always referred and accessed using the member access operator(.) via the structure variable name  A structure containing a member that is a pointer to the same structure type is called as a self referential structure.  The structure pointer operator () is used when accessing a member of a structure via a pointer to the structure
  • 17.
    EXERCISES 1. Define astructure in C that contains the following: a. An integer quantity called “Won” b. An integer quantity called “Lost” c. A floating quantity called “Lost” d. An array of characters to hold the name Include the user defined data type record within the definition? 2. Define a structure called student that will describe the following information student name,class,rollno, subject marks & total. Using student declare an array stu_list with 30 elements. Write program in C to read the information about all the 30 students and to display the information?