Structure Basics in C

In this lesson, you will learn about Structures in C, their usage, with the help of examples to better understand the topic.

A Structure or struct is a user-defined data type in programming. It holds different types of data under a single unit variable. It is similar to an array; however, An array can only store elements with a matching data type. On the other hand, a C structure can hold different data types and works whole as a single data type. It also helps to keep a record of various dimensions of data.

Create a structure in C

struct EmployeeInfo {
  char Name[30];
  int ID;
  int age;
  char Department[20];
  double Salary;
};

Declare a Structure Variable

// A variable declaration with structure declaration.
struct EmployeeInfo {
  data_member;
  data_member;
}
emp1, emp2; // The variable emp1, and emp2 is declared with 'EmployeeInfo'

// A variable declaration like basic data types
struct EmployeeInfo {
  data_member;
  data_member;
};

int main() {
  struct EmployeeInfo emp1, emp2; // The variable emp1 and emp2 is declared like a normal variable
}

Initialize Struct Members

Struct members are a bit different and tricky when it comes to initialization. We cannot initialize a struct member directly like regular variables.

struct EmployeeInfo {
  int ID = 1;
  double Salary = 25000.00;
};

The above initialization occurs a compilation error. When we declare a data type, no memory is allocated for it. The memory only is allocated when we create a variable. To initialize a struct member, we have to put the value inside a curly brace. Have a thorough look at the below example.

struct EmployeeInfo {
  int ID;
  double Salary;
};
struct EmployeeInfo emp1 {
  1,
  25000.00
};

Access Struct Members

To access any member from a C structure, we must use the member access operator (.)

#include <stdio.h>

#include <string.h>

struct EmployeeInfo {
  char * Name;
  int ID;
  int Age;
  char * Department[20];
  float Salary;
};

int main() {
  struct EmployeeInfo emp1, emp2;

  //Initializing members
  emp1.Name = "Adam";
  emp1.ID = 1;
  emp1.Age = 35;
  strcpy(emp1.Department, "Finance");
  emp1.Salary = 25000.0;

  // Showing the members value on computer's screen
  printf("\nEmployee Name is: %s", emp1.Name);
  printf("\nEmployee ID is: %d", emp1.ID);
  printf("\nEmployee's age is: %d", emp1.Age);
  printf("\nEmployee's Department is: %s", emp1.Department);
  printf("\nEmployee's Salary is: %2f", emp1.Salary);
}

Output

Employee Name is: Adam
Employee ID is: 1
Employee’s age is: 35
Employee’s Department is: Finance
Employee’s Salary is: 25000.00.
We can create more structured variables for a specific employee of a certain company and get their details within seconds.

Summary

  • Structures assemble different kinds of data types in it and bind them together to the same place.
  • It is easy to understand, and a time-saving approach alongside.
  • Structures are more feasible to handle and user friendly.
  • It does not permit data hiding. Therefore, its members can be reached from anywhere in the scope of the structure.
Back to: Learn C Programming > Structures and Unions

Leave a Reply

Your email address will not be published. Required fields are marked *