Union is a user-defined data type in C language that can contain elements of the different data types and pointers are used to store memory addresses. In this article, we will learn how to declare a pointer to a union in C++.
Pointer to Union in C
To declare a pointer to a union first, define a union and then declare a pointer that points to the union type using the below syntax:
Syntax to Declare Pointer to Union in C
//Define Union
union unionName {
int var1;
float var2;
};
//declare pointer to union
union unionName *ptr;
We can also assign the pointer the address of some union variable by using the addressof(&) operator.
C Program to Declare Pointer to Union
The following programs show how to declare pointers to unions in C programming and access members using the arrow operator (->).
// C program to declare pointer to union #include <stdio.h> // Defining a union union myUnion {
int intValue;
float floatValue;
char charValue;
}; int main()
{ // Creating a union variable
union myUnion u;
// Declaring a pointer to the union and assign it the
// address of the union variable
union myUnion* ptr = &u;
// Using the pointer to Set the intValue member of the
// union
ptr->intValue = 100;
// Accessing the intValue member of the union
printf ( "The intValue is: %d\n" , ptr->intValue);
// set value for floatValue This will overwrite the
// intValue
ptr->floatValue = 3.14;
// Accessing the floatValue member of the union
printf ( "The floatValue is: %f\n" , ptr->floatValue);
return 0;
} |
The intValue is: 100 The floatValue is: 3.140000