A Comprehensive Guide to Structures in C Programming in 2023

Article by: Manish Methani

Last Updated: November 1, 2021 at 2:04pm IST
6 min 0 sec read

Structures in C programming are used to define a new data type that can hold different data types. It is similar to an array but with more flexibility, as it can hold different data types. In this tutorial, we will cover the basics of structures, and how to create and use structures in C programming.

Creating a structure:

To create a structure in C programming, we use the struct keyword followed by the name of the structure. Here is an example:

struct student {
   char name[50];
   int roll_no;
   float marks;
};

In the above example, we have created a structure named student with three members: name, roll_no, and marks. The name member is an array of characters, roll_no is an integer, and marks is a floating-point number.

Using a structure:

Once we have created a structure, we can use it to create variables of that structure type. Here is an example:

struct student s1;

In the above example, we have created a variable s1 of type student. We can access the members of the structure using the dot (.) operator. Here is an example:

s1.roll_no = 10;

In the above example, we are assigning a value of 10 to the roll_no member of the s1 variable.

Accessing structure members:

We can access the members of a structure using the dot (.) operator. Here is an example:

struct student s1;
s1.roll_no = 10;

In the above example, we are accessing the roll_no member of the s1 variable using the dot (.) operator.

Passing a structure to a function:

We can pass a structure to a function in C programming. Here is an example:

void display(struct student s) {
   printf("Roll no: %d", s.roll_no);
   printf("Name: %s", s.name);
   printf("Marks: %f", s.marks);
}

In the above example, we have defined a function named display that takes a parameter of type student. Inside the function, we are accessing the members of the structure using the dot (.) operator.

Initializing a structure:

We can initialize a structure while declaring it. Here is an example:

struct student s1 = {"John Doe", 10, 75.5};

In the above example, we are initializing the members of the s1 variable while declaring it.

Passing a struct to a function is a common task in C programming. There are two ways to pass a struct to a function - by value and by reference. In this tutorial, we will cover both methods of passing a struct and provide code examples to demonstrate the concepts.

Passing a struct by value:

When a struct is passed by value, a copy of the entire struct is made and passed to the function. Any changes made to the struct within the function do not affect the original struct outside the function. Here is an example of passing a struct by value:

#include <stdio.h>
#include <string.h>

struct student {
    char name[50];
    int roll_no;
    float marks;
};

void display_student(struct student s) {
    printf("Name: %s", s.name);
    printf("Roll no: %d", s.roll_no);
    printf("Marks: %.2f", s.marks);
}

int main() {
    struct student s1 = {"John Doe", 10, 75.5};
    display_student(s1); // passing struct by value
    return 0;
}

In the above example, we define a struct named student with three members. We then define a function named display_student that takes a struct student as a parameter. We create a struct variable s1 and initialize it with some values. Finally, we call the display_student function and pass s1 as a parameter.

Passing a struct by reference:

When a struct is passed by reference, a pointer to the struct is passed to the function. Any changes made to the struct within the function affect the original struct outside the function. Here is an example of passing a struct by reference:

#include <stdio.h>
#include <string.h>

struct student {
    char name[50];
    int roll_no;
    float marks;
};

void display_student(struct student *s) {
    printf("Name: %s", s->name);
    printf("Roll no: %d", s->roll_no);
    printf("Marks: %.2f", s->marks);
}

int main() {
    struct student s1 = {"John Doe", 10, 75.5};
    display_student(&s1); // passing struct by reference
    return 0;
}

In the above example, we define a struct named student with three members. We then define a function named display_student that takes a pointer to a struct student as a parameter. We create a struct variable s1 and initialize it with some values. Finally, we call the display_student function and pass the address of s1 as a parameter.

Conclusion:

In this tutorial, we have covered the basics of structures in C programming. We have learned how to create a structure, how to use it, how to access its members, how to pass it to a function, and how to initialize it. Structures are a powerful feature of C programming, and they are widely used in real-world applications.

Simplified Coding for Beginners.








Download the Codzify
Mobile App


Mobile App Development, Web App Development, Programming Languages, Latest Tech News & lot more.

Codzify Mobile App

A self-paced learning Courses Created by an Engineer
For Engineers.

Premium

The Complete Angular Course

Instructor: Manish Methani

Explore Curriculum
Free

C Programming for Absolute Beginners

Instructor: Manish Methani

Start Watching
Premium

Flutter Mobile App Development Course

Instructor: Manish Methani

Explore Curriculum
Free

Learn HTML, CSS & Bootstrap

Instructor: Manish Methani

Start Watching

Test your skills with these expert-led curated
Mock Tests.

C Programming Test

Test your C Programming skills with this comprehensive mock test on C Programming.

Take Test

Flutter Test

Solve most asked Interview Questions on Flutter and Test your foundational skills in flutter.

Take Test

GATE(CSE) Operating Systems

Solve most asked GATE Questions in Operating Systems and test your Gate Score.

Take Test

HTML,CSS Test

This is a mock test designed to help you assess your knowledge and skills in HTML and CSS.

Take Test

(GATE CSE) Data Structures & Algorithms Test

Solve most asked GATE Questions in Data Structures and Algorithms and test your Gate Score.

Take Test
include_once 'codzify-footer.php'; ?>