앞 강에서 설명한 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;
}
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 21강) malloc함수로 메모리 사용하기 (0) | 2020.11.07 |
---|---|
C언어 20강)+이중포인터 (0) | 2020.11.07 |
C언어 19강 ) 다양한 자료형의 포인터 (0) | 2020.11.06 |
C언어 18강)++ 포인터와 문자열/ 문자열 포인터에서 인덱스로 접근하기 (0) | 2020.11.06 |
C언어 18강)+ 포인터 변수 역참조 (0) | 2020.11.06 |