We can create array of unions similar to creating array of any primitive data type. Below is the general form of declaration for array of union.
union <union_name> <array_name>[size];
Consider the following example,
union values {
int int_val;
float float_val;
};
union values arr[2];
Here, arr is an array of union which can hold two union elements.
Array of union initialization:
Let us see how to initialize array of union.
union values arr[2] = {{1}, {2}};
The above statement initializes first union member of both the array elements.
union values arr[2] = {{.float_val = 1.1}, {.float_val = 2.2}};
The above statement initialized second union member of both the array elements.
How to access union members?
Now, let us see how to access union members in the array element.
arr[0].float_val = 2.2;
Dot operator(access operator) is used to access union array element's data member.
Note:
In union, only one data member will be active at a time.
Size of a union is the size of its biggest data(union) member.
Array of unions example in C
union <union_name> <array_name>[size];
Consider the following example,
union values {
int int_val;
float float_val;
};
union values arr[2];
Here, arr is an array of union which can hold two union elements.
Array of union initialization:
Let us see how to initialize array of union.
union values arr[2] = {{1}, {2}};
The above statement initializes first union member of both the array elements.
union values arr[2] = {{.float_val = 1.1}, {.float_val = 2.2}};
The above statement initialized second union member of both the array elements.
How to access union members?
Now, let us see how to access union members in the array element.
arr[0].float_val = 2.2;
Dot operator(access operator) is used to access union array element's data member.
Note:
In union, only one data member will be active at a time.
Size of a union is the size of its biggest data(union) member.
Array of unions example in C
#include <stdio.h> union values { int integer_val; // union member float float_val; // union member }; int main() { /* array of unions initialization */ union values arr1[2] = {{10}, {20}}; union values arr2[2] = {{.float_val = 10.01}, {.float_val = 20.02}}; /* printing the array contents */ printf("arr1[0].integer_val: %d\n", arr1[0].integer_val); printf("arr1[1].integer_val: %d\n", arr1[1].integer_val); printf("arr2[0].float_val: %f\n", arr2[0].float_val); printf("arr2[1].float_val: %f\n", arr2[1].float_val); /* printing the size of the union */ printf("Sizeof(union values): %d\n", sizeof(union values)); return 0; }
Output:
jp@jp-VirtualBox:~/$ ./a.out
arr1[0].integer_val: 10
arr1[1].integer_val: 20
arr2[0].float_val: 10.010000
arr2[1].float_val: 20.020000
Sizeof(union values): 4
arr1[0].integer_val: 10
arr1[1].integer_val: 20
arr2[0].float_val: 10.010000
arr2[1].float_val: 20.020000
Sizeof(union values): 4
Nice article admin thanks for share your atricle keep share your knowledge i am waiting for your new post check mens winter jackets polo shirts kindly review and reply me
ReplyDeleteKissAsian is Asian Dramas Platform where you can find all Korean, Chinese, Japanese dramas.
ReplyDeleteGogoanime | Watch gogo anime online, English anime online HD
Watch Online Movies Online Bollywood Movies Latest Hollywood Movies Online Hindi Movies Dubbed Movies Tamil Movies Download Latest new Movie
Hello Everyone !
ReplyDeleteUSA SSN Leads/Dead Fullz available, along with Driving License/ID Number with good connectivity.
All SSN's are Tested & Verified.
**DETAILS IN LEADS/FULLZ**
->FULL NAME
->SSN
->DATE OF BIRTH
->DRIVING LICENSE NUMBER
->ADDRESS WITH ZIP
->PHONE NUMBER, EMAIL
->EMPLOYEE DETAILS
*Price for SSN lead $2
*You can ask for sample before any deal
*If you buy in bulk, will give you discount
*Sampling is just for serious buyers
->Hope for the long term business
->You can buy for your specific states too
**Contact 24/7**
Whatsapp > +923172721122
Email > leads.sellers1212@gmail.com
Telegram > @leadsupplier
ICQ > 752822040