Академический Документы
Профессиональный Документы
Культура Документы
Define Structure Create Structure variable Access structure member using . operator Nested Structures
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
{
J A V A H A U N T E R
467
Book Name
Author Name
Pages
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)); }
Initializing Structures
Like variables and arrays, structure variables can be initialized at the beginning of the program. The variable emp1 and emp2 of the type employee can be initialized Consider the following program : 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 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); }
Passing the structure member as a printf("\n Enter the Marks"); 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);
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 sno\n");
scanf("%d",&s.sno); printf("enter the sname\n"); scanf("%s",s.sname); printf("enter the dob\n"); scanf("%d%d%d %c",&s.sdob.date, &s.sdob.month,&s.sdob.year,&s.sex); printf("%d\t %s\t %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. b. c. d. An integer quantity called Won An integer quantity called Lost A floating quantity called Lost 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?