What is a C struct?
C struct, short for C Structure, is an user-defined data type available in C. It allows a user to combine data items of possibly different data types under a single name.
C structs are different from arrays because arrays hold data of similar data-types only. C struct, on the other hand, can store data of multiple data-types.
Each element in the structure is called a member.
Syntax
A structure is defined by using the struct keyword. A structure is a possible collection of primary data types and other structures as well.
- The
structure_nameholds the name we want to give to our structure. data_type variableis the C variables of different data types likeint,char,floatetc.
struct structure_name{//data_type variable 1//data_type variable 2//data_type variable 3...};
Defining a structure
The code below initializes a structure Employee having three member variables:
name: An array ofchartype.age: A variable ofinttype.salary: A variable offloattype.
struct Employee{char name[50];int age;float salary;};
Initializing a structure
Structures can be assigned values when they are initialized.
Before initialization:
struct Employee{char name[50];int age;float salary;};int main() {struct Employee e1 = {"John", 32, 4200};//accessing the values in the variableprintf("Name: %s\n", e1.name);printf("Age : %d\n", e1.age);printf("Salary : %f\n", e1.salary);}
After initialization:
struct Employee{char name[50];int age;float salary;};int main() {struct Employee e1;strcpy(e1.name, "John");e1.age = 32;e1.salary = 4200;//accessing the values in the variableprintf("Name: %s\n", e1.name);printf("Age : %d\n", e1.age);printf("Salary : %f\n", e1.salary);}
Accessing a Structure
The values in a structure variable can be accessed in the following manner:
struct Employee{char name[50];int age;float salary;};int main() {struct Employee e1 = {"John", 32, 4200};//accessing the values in the variableprintf("Name: %s\n", e1.name);printf("Age : %d\n", e1.age);printf("Salary : %f\n", e1.salary);}
Free Resources