• C Program to Accessing Members of Union Using Pointers

    Welcome to this informative blog post on accessing members of a union using pointers in the C programming language. Whether you are new to programming or already familiar with the topic, this post will provide you with valuable insights and examples to help you understand and implement this concept effectively.


    Unions in C are a powerful data structure that allows combining different data types into a single variable. They provide a way to define a single variable that may take on different types at different times. In this blog post, we will explore how to access the members of a union using pointers.

    Why Use Pointers to Access Members of a Union?

    Pointers offer a convenient way to access and manipulate data stored in memory. When accessing members of a union, using pointers allows us to efficiently retrieve and modify the data without the need to copy the entire union. This can be particularly useful when dealing with large unions or when memory efficiency is crucial.

    Accessing Members of a Union Using Pointers

    To access the members of a union using pointers, we need to follow a few simple steps. Let’s dive into each step in detail:

    Step 1: Define the Union

    First, we need to define a union that contains multiple members of different data types. Let’s consider an example where we define a union named Employee that can store either an integer id or a float salary:

    union Employee {
        int id;
        float salary;

    Here, we have two members within the union – id of type int and salary of type float.

    Step 2: Create a Union Variable and Assign Values

    Next, we create a union variable and assign values to its members. This step is not specific to accessing members using pointers but is essential to demonstrate the process.

    union Employee emp;
    emp.id = 1001;

    In this example, we assign the value 1001 to the id member of the emp union variable.

    Step 3: Declare a Pointer to the Union

    Now, we declare a pointer to the union using the union name and the * operator.

    union Employee *ptr;

    Step 4: Assign the Address of the Union Variable to the Pointer

    We assign the address of the union variable to the pointer using the address-of operator &.

    ptr = &emp;

    Here, &emp retrieves the address where emp is stored, and we assign that address to the pointer ptr.

    Step 5: Accessing Members of the Union Using Pointers

    Finally, we can access the members of the union using the pointer. To do this, we need to use the -> operator, also known as the arrow operator.

    printf("Employee ID: %d", ptr->id);

    In this example, we use ptr->id to access the id member of the emp union variable using the pointer ptr.

    Example Program: Accessing Union Members

    Let’s put all the steps together in a complete example program that demonstrates accessing members of a union using pointers:

    #include <stdio.h>
    union Employee {
        int id;
        float salary;
    int main() {
        union Employee emp;
        emp.id = 1001;
        union Employee *ptr;
        ptr = &emp;
        printf("Employee ID: %d\n", ptr->id);
        return 0;

    In this program, we define a union Employee with an id member. We create a union variable emp, assign the value 1001 to its id member, and then declare a pointer ptr to the union. Using ptr->id, we access the id member of emp using the pointer ptr. Finally, we print the value of id using printf.

    When you run this program, the output will be:

    Employee ID: 1001

    Congratulations! Eventually, You have successfully accessed the member of a union using pointers.


    In this blog post, Overall, we explored how to access members of a union using pointers in the C programming language. We learned that pointers provide an efficient way to retrieve and modify data stored within a union without the need for unnecessary copying. By following the steps outlined in this post, you can effectively work with unions and pointers in your C programs.

    Remember, unions are a powerful tool for combining different types of data, and pointers enhance our ability to access and manipulate that data efficiently. Practice using pointers to access union members, and you’ll gain valuable skills for handling complex data structures in C.

    To continue your journey in exploring unions and pointers further, check out some advanced programming books or online resources that delve deeper into these topics. Keep coding and happy learning!