Computer >> Máy Tính >  >> Lập trình >> lập trình C

Giải thích Union với con trỏ bằng ngôn ngữ C

Một hợp nhất được gọi là một vị trí bộ nhớ, được chia sẻ bởi một số biến của các kiểu dữ liệu khác nhau.

Cú pháp

Cú pháp như sau -

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 liên hợp

Dưới đây là các khai báo tương ứng của biến union -

Mẫu liên minh

{
   int a;
   float b;
   char c;
}s;

Giải thích Union với con trỏ bằng ngôn ngữ C

Liên minh

{
   int a;
   float b;
   char c;
}s;

Mẫu liên minh

{
   int a;
   float b;
   char c;
};
union sample s;

Khi khai báo liên hợp, trình biên dịch sẽ tự động tạo một biến chứa kiểu biến lớn nhất trong liên hợp.

Tại bất kỳ thời điểm nào, chỉ một biến có thể được tham chiếu.

Khởi tạo và truy cập

  • Truy cập thành viên đoàn giống như cấu trúc.
  • Nói chung, toán tử dấu chấm được sử dụng để truy cập các thành viên.
  • Toán tử mũi tên (->) được sử dụng để truy cập các thành viên
  • Không có hạn chế khi sử dụng kiểu dữ liệu trong liên hợp.

Ví dụ

Sau đây là chương trình C cho liên minh 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);
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

90Z