Article by: Manish Methani
Last Updated: November 1, 2021 at 2:04pm IST
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.
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.
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.
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.
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.
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.
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.
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.
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.