공용체는 서로 다른 데이터 유형의 여러 변수가 공유하는 메모리 위치입니다.
구문
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