Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어에서 공용체에 대한 포인터 설명

<시간/>

공용체는 서로 다른 데이터 유형의 여러 변수가 공유하는 메모리 위치입니다.

구문

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