Union là một vị trí bộ nhớ được chia sẻ bởi nhiều biến có kiểu dữ liệu khác nhau.
Cú pháp
union uniontag{ datatype member 1; datatype member 2; ---- ---- datatype member n; };
Ví dụ:
union sample{ int a; float b; char c; };
Khai báo biến union
Các cách khai báo biến union:
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;
Khi khai báo union, trình biên dịch tự động tạo biến chứa kiểu dữ liệu lớn nhất trong union. Tại một thời điểm, chỉ có thể tham chiếu đến một biến.
Khởi tạo và truy cập
- Truy cập thành viên union giống như struct.
- Toán tử mũi tên (
->) dùng để truy cập thành viên qua con trỏ. - Không có hạn chế về kiểu dữ liệu trong union.
Ví dụ
Chương trình C minh họa union với con trỏ:
#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); }
Kết quả
90Z