프로그래밍 언어/C

C언어 20강) void 포인터

happy_life 2020. 11. 6. 17:24

앞 강에서 설명한 float , char 등은 자료형이 정해진 포인터이다. 그렇다면 자료형이 정해지지 않은 포인터도 있을까? YES

그것이 바로 void 포인터이다. 

 

보통 C언어에서 자료형을 맞춰주지 않으면 컴파일 경고가 발생하지만, void 포인터에서는 발생하지 않는다.

 

 하지만 void 포인터는 자료형이 정해지지 않았으므로 값을 가져오거나 저장할 크기도 정해지지 않았다. 따라서 void 포인터는 역참조를 하기위해서 캐스트(cast)연산자를 사용해주어야한다.

 

캐스트연산자란 자료형을 변환할 때 사용하는 연산자이다.

 

  • (자료형 *)포인터

 

●void 포인터 코드예제

#include <stdio.h>

int main()
{
    int a = 100;
    char b = 'f';
    void* po;

    printf("■캐스트연산자를 사용해 void포인터에서 역참조하기■\n");
    po = &a;
    printf(" 변수 a의 값 역참조 : %d\n", *(int*)po);

    po = &b;
    printf(" 변수 b의 값 역참조 : %c\n", *(char*)po);


  
    
    return 0;
}

 

결괏값