Pointer to Structure in C Language
Introduction
In C programming, structures are used to group different data types together. A pointer to a structure is a pointer that points to the memory location of a structure. This can be particularly useful when dealing with arrays of structures or passing structures to functions.
Defining a Structure
Before we can use pointers to structures, we need to define a structure. Here is an example of a simple structure:
struct Person {
char name[50];
int age;
float salary;
};
Declaring a Pointer to a Structure
Once we have a structure, we can declare a pointer to it. Here’s how we can declare a pointer to the Person structure:
struct Person *personPtr;
Assigning Address to a Structure Pointer
We can assign the address of a structure variable to the structure pointer. Here's an example:
struct Person person1; struct Person *personPtr; personPtr = &person1;
Accessing Structure Members Using Pointer
There are two ways to access the members of a structure using a pointer: the -> operator and the dereference operator *.
Using the Arrow Operator (->)
The arrow operator allows us to directly access the members of the structure:
personPtr->age = 30; strcpy(personPtr->name, "John Doe"); personPtr->salary = 50000.0f;
Using the Dereference Operator (*)
We can also use the dereference operator to access the structure members:
(*personPtr).age = 30; strcpy((*personPtr).name, "John Doe"); (*personPtr).salary = 50000.0f;
Complete Example
Here is a complete example that demonstrates the use of pointers to structures:
#include <stdio.h>
#include <string.h>
struct Person {
char name[50];
int age;
float salary;
};
int main() {
struct Person person1;
struct Person *personPtr;
personPtr = &person1;
// Using arrow operator to assign values
personPtr->age = 30;
strcpy(personPtr->name, "John Doe");
personPtr->salary = 50000.0f;
// Printing values
printf("Name: %s\n", personPtr->name);
printf("Age: %d\n", personPtr->age);
printf("Salary: %.2f\n", personPtr->salary);
return 0;
}
Output:
Name: John Doe Age: 30 Salary: 50000.00
Conclusion
Pointers to structures are a powerful feature in C that allows for efficient manipulation and access of structure data. Understanding how to use these pointers is essential for working with complex data types and structures in C programming.
