공용체는 서로 다른 데이터 유형의 여러 변수가 공유하는 메모리 위치입니다.
구문
C 프로그래밍에서 공용체에 대한 포인터 구문은 다음과 같습니다. -
union uniontag{
datatype member 1;
datatype member 2;
----
----
datatype member n;
}; 예시
다음은 구조체의 합집합을 사용한 예입니다.
union sample{
int a;
float b;
char c;
}; 유니온 변수 선언
다음은 Union 변수에 대한 선언입니다. 다음과 같이 3가지 종류가 있습니다 -
유형 1
union sample{
int a;
float b;
char c;
}; 유형 2
union{
int a;
float b;
char c;
}s; 유형 3
union sample{
int a;
float b;
char c;
};
union sample s; -
Union이 선언되면 컴파일러는 자동으로 가장 큰 크기의 변수 유형을 생성하여 Union에 변수를 보관합니다.
-
언제든지 하나의 변수만 참조할 수 있습니다.
-
같은 구조의 구문이 공용체 구성원에 액세스하는 데 사용됩니다.
-
점 연산자는 회원에 접근하기 위한 것입니다.
-
화살표 연산자(->)는 포인터를 사용하여 멤버에 액세스하는 데 사용됩니다.
우리는 공용체에 대한 포인터를 가지고 있으며 구조체와 마찬가지로 화살표 연산자(->)를 사용하여 멤버에 액세스할 수 있습니다.
예시
다음 프로그램은 C 프로그래밍에서 합집합에 대한 포인터의 사용법을 보여줍니다 -
#include <stdio.h>
union pointer {
int num;
char a;
};
int main(){
union pointer p1;
p1.num = 75;
// p2 is a pointer to union p1
union pointer* p2 = &p1;
// Accessing union members using pointer
printf("%d %c", p2->num, p2->a);
return 0;
} 출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
75 K
예시 2
다른 입력으로 동일한 예를 고려하십시오.
#include <stdio.h>
union pointer {
int num;
char a;
};
int main(){
union pointer p1;
p1.num = 90;
// p2 is a pointer to union p1
union pointer* p2 = &p1;
// Accessing union members using pointer
printf("%d %c", p2->num, p2->a);
return 0;
} 출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
90 Z