A union is called as a memory location, which is shared by several variables of different data types.
Syntax
The syntax is as follows −
union uniontag{ datatype member 1; datatype member 2; ---- ---- datatype member n; };
For example,
union sample{ int a; float b; char c; };
Declaration of union variable
Given below are the respective declarations of union variable −
Union sample
{ int a; float b; char c; }s;
Union
{ int a; float b; char c; }s;
Union sample
{ int a; float b; char c; }; union sample s;
When union is declared, the compiler automatically creates a variable which hold the largest variable type in the union.
At any time, only one variable can be referred.
Initialization and accessing
- Accessing union member is same as the structure.
- Generally, the dot operator is used for accessing members.
- The arrow operator ( ->) is used for accessing the members
- There is no restriction while using data type in a union.
Example
Following is the C program for union to pointer −
#include<stdio.h> union abc{ int a; char b; }; int main(){ union abc var; var.a=90; union abc *p=&var; printf("%d%c",p->a,p->b); }
Output
When the above program is executed, it produces the following result −
90Z