0% found this document useful (0 votes)
5 views

Structures Functions

The document explains the concept of structures in C programming, which are user-defined data types that can hold multiple data items of different kinds. It provides examples of defining a structure for books, accessing structure members, and passing structures as function arguments, both by value and by reference. Additionally, it illustrates how to return a structure from a function and includes sample code demonstrating these concepts.

Uploaded by

bhargavisai2707
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Structures Functions

The document explains the concept of structures in C programming, which are user-defined data types that can hold multiple data items of different kinds. It provides examples of defining a structure for books, accessing structure members, and passing structures as function arguments, both by value and by reference. Additionally, it illustrates how to return a structure from a function and includes sample code demonstrating these concepts.

Uploaded by

bhargavisai2707
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Structures

Arrays allow to define type of variables that can hold several data items of the
same kind. Similarly structure is another user defined data type available in C that
allows to combine data items of different kinds.

Structures are used to represent a record. Suppose you want to keep track of your
books in a library. You might want to track the following attributes about each
book −

 Title
 Author
 Subject
 Book ID

Defining a Structure

To define a structure, you must use the struct statement. The struct statement
defines a new data type, with more than one member. The format of the struct
statement is as follows

struct [structure tag] {

member definition;
member definition;
...
member definition;
} [one or more structure variables];

The structure tag is optional and each member definition is a normal variable
definition, such as int i; or float f; or any other valid variable definition. At the end
of the structure's definition, before the final semicolon, you can specify one or
more structure variables but it is optional.
Here is the way you would declare the Book structure −

struct Books {
char title[50];
char author[50];
char subject[100];
int book_id;
} book;

Accessing Structure Members


To access any member of a structure, we use the member access operator (.). The
member access operator is coded as a period between the structure variable name
and the structure member that we wish to access. You would use the keyword
struct to define variables of structure type. The following example shows how to
use a structure in a program

#include <stdio.h>
#include <string.h>
struct Books {
char title[50];
char author[50];
char subject[100];
int book_id;
};
int main( ) {

struct Books Book1; /* Declare Book1 of type Book */


struct Books Book2; /* Declare Book2 of type Book */
/* book 1 specification */
strcpy( Book1.title, "C Programming");
strcpy( Book1.author, "Nuha Ali");
strcpy( Book1.subject, "C Programming Tutorial");
Book1.book_id = 6495407;
/* book 2 specification */
strcpy( Book2.title, "Telecom Billing");
strcpy( Book2.author, "Zara Ali");
strcpy( Book2.subject, "Telecom Billing Tutorial");
Book2.book_id = 6495700;
/* print Book1 info */
printf( "Book 1 title : %s\n", Book1.title);
printf( "Book 1 author : %s\n", Book1.author);
printf( "Book 1 subject : %s\n", Book1.subject);
printf( "Book 1 book_id : %d\n", Book1.book_id);

/* print Book2 info */


printf( "Book 2 title : %s\n", Book2.title);
printf( "Book 2 author : %s\n", Book2.author);
printf( "Book 2 subject : %s\n", Book2.subject);
printf( "Book 2 book_id : %d\n", Book2.book_id);

return 0;
}

When the above code is compiled and executed, it produces the following result −

Book 1 title : C Programming


Book 1 author : Nuha Ali
Book 1 subject : C Programming Tutorial
Book 1 book_id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutorial
Book 2 book_id : 6495700

Structures as Function Arguments


You can pass a structure as a function argument in the same way as you pass any
other variable or pointer.

#include <stdio.h>
#include <string.h>
struct Books {
char title[50];
char author[50];
char subject[100];
int book_id;
};

/* function declaration */
void printBook( struct Books book );

int main( ) {

struct Books Book1; /* Declare Book1 of type Book */


struct Books Book2; /* Declare Book2 of type Book */
/* book 1 specification */
strcpy( Book1.title, "C Programming");
strcpy( Book1.author, "Nuha Ali");
strcpy( Book1.subject, "C Programming Tutorial");
Book1.book_id = 6495407;

/* book 2 specification */
strcpy( Book2.title, "Telecom Billing");
strcpy( Book2.author, "Zara Ali");
strcpy( Book2.subject, "Telecom Billing Tutorial");
Book2.book_id = 6495700;
/* print Book1 info */
printBook( Book1 );

/* Print Book2 info */


printBook( Book2 );

return 0;
}
void printBook( struct Books book ) {

printf( "Book title : %s\n", book.title);


printf( "Book author : %s\n", book.author);
printf( "Book subject : %s\n", book.subject);
printf( "Book book_id : %d\n", book.book_id);
}

When the above code is compiled and executed, it produces the following result −

Book title : C Programming


Book author : Nuha Ali
Book subject : C Programming Tutorial
Book book_id : 6495407
Book title : Telecom Billing
Book author : Zara Ali
Book subject : Telecom Billing Tutorial
Book book_id : 6495700

Structure and Function in C


Using function we can pass structure as function argument and we can
also return structure from function.

Passing Structure by Value


In this approach, the structure object is passed as function argument to the
definition of function, here object is reperesenting the members of structure with
their values.

Example for passing structure object by value


#include<stdio.h>

struct Employee
{
int Id;
char Name[25];
int Age;
long Salary;
};

void Display(struct Employee);


void main()
{
struct Employee Emp = {1,"Kumar",29,45000};

Display(Emp);

void Display(struct Employee E)


{
printf("\n\nEmployee Id : %d",E.Id);
printf("\nEmployee Name : %s",E.Name);
printf("\nEmployee Age : %d",E.Age);
printf("\nEmployee Salary : %ld",E.Salary);
}

Output :

Employee Id : 1
Employee Name : Kumar
Employee Age : 29
Employee Salary : 45000

Passing Structure by Reference


In this approach, the reference/address structure object is passed as function
argument to the definition of function.

Example for passing structure object by reference

#include<stdio.h>

struct Employee
{
int Id;
char Name[25];
int Age;
long Salary;
};

void Display(struct Employee*);


void main()
{
struct Employee Emp = {1,"Kumar",29,45000};

Display(&Emp);

void Display(struct Employee *E)


{
printf("\n\nEmployee Id : %d",E->Id);
printf("\nEmployee Name : %s",E->Name);
printf("\nEmployee Age : %d",E->Age);
printf("\nEmployee Salary : %ld",E->Salary);
}

Output :

Employee Id : 1
Employee Name : Kumar
Employee Age : 29
Employee Salary : 45000
Function Returning Structure
Structure is user-defined data type, like built-in data types structure can be return
from function.

Example for passing structure object by reference

#include<stdio.h>

struct Employee
{
int Id;
char Name[25];
int Age;
long Salary;
};

struct Employee Input(); //Statement 1


void main()
{
struct Employee Emp;

Emp = Input();

printf("\n\nEmployee Id : %d",Emp.Id);
printf("\nEmployee Name : %s",Emp.Name);
printf("\nEmployee Age : %d",Emp.Age);
printf("\nEmployee Salary : %ld",Emp.Salary);

struct Employee Input()


{
struct Employee E;
printf("\nEnter Employee Id : ");
scanf("%d",&E.Id);

printf("\nEnter Employee Name : ");


scanf("%s",&E.Name);

printf("\nEnter Employee Age : ");


scanf("%d",&E.Age);

printf("\nEnter Employee Salary : ");


scanf("%ld",&E.Salary);

return E; //Statement 2
}

Output :

Enter Employee Id : 10
Enter Employee Name : Ajay
Enter Employee Age : 25
Enter Employee Salary : 15000

Employee Id : 10
Employee Name : Ajay
Employee Age : 25
Employee Salary : 15000

#include <stdio.h>
// Defining a structure
struct A {
int x;
};
int main() {
// Creating a structure variable
struct A a;
// Initializing member
a.x = 11;
printf("%d", a.x);
return 0;
}
Output
11
#include <stdio.h>
#include<string.h>

// Defining a structure
struct A {
int x;
char name[10];
};

int main() {

// Creating a structure variable


struct A a;
// Initializing member
a.x = 11;
strcpy(a.name,"RAM");

printf("%d\n", a.x);
printf("%s", a.name);

printf("\nRead second time data\n");


printf("enter the value of x:");
scanf("%d",&a.x);
printf("\n Enter the name:");
scanf(" %s",a.name);
printf("\nPrint second time data\n");
printf("value of x =%d\n",a.x);
printf("name =%s",a.name);
return 0;
}

Output
11
RAM
Read second time data
enter the value of x:22

Enter the name:kalam

Print second time data


value of x =22
name =kalam

You might also like