Pointers to Structure in C Programming

The pointers to a structure in very similar to the pointer to any in-built data type variable.

The syntax for declaring a pointer to structure variable:

struct structure_name *pointer_variable
For Example
struct Employee
{
    char name[50];
    int age;
    float salary;
}employee_one;
struct Employee *employee_ptr;
We can use addressOf operator(&) to get the address of structure variable.
struct Employee *employee_ptr = &employee_one;

To access the member variable using a pointer to a structure variable we can use arrow operator(->). We can access member variable by using pointer variable followed by an arrow operator and then the name of the member variable.

To access a member variable of structure using variable identifier we use dot(.) operator whereas we use arrow(->) operator to access member variable using structure pointer.

employee_ptr->salary;

C Program to print the members of a structure using Pointer and Arrow Operators

#include <stdio.h>
#include <conio.h>

struct employee {
    char name[100];
 int age;
 float salary;
 char department[50];
};

int main(){
   struct employee employee_one, *ptr;
   
   printf("Enter Name, Age, Salary and Department of Employee\n");
   scanf("%s %d %f %s", &employee_one.name, &employee_one.age,
       &employee_one.salary, &employee_one.department);

       
   /* Printing structure members using arrow operator */
   ptr = &employee_one;
   printf("\nEmployee Details\n");
   printf(" Name : %s\n Age : %d\n Salary = %f\n Dept : %s\n", 
       ptr->name, ptr->age, ptr->salary, ptr->department);

   getch();
   return 0;
}

Program Output
Enter Name, Age, Salary and Department of Employee
Jack 30 1234.5 Sales
 
Employee Details
 Name : Jack
 Age : 30
 Salary = 1234.500000
 Dept : Sales