본문 바로가기

공부/c++

void형 포인터??

반응형

void 형 포인터란 모든형(char,int,double)등의 주소를 저장할 수 있는 포인터이다.

char형 주소를 저장히기 위해서는 char형 포인터가 필요하고 int형 주소를 저장하기 위해서는 int 형 포인터가 필요하다 하지만 char형과 int형주소 모드를 저장해야 하는 겨우라면 데이터 자료형이 결정되지 않았으므로 void형 포인터를 사용하여 저장해야한다.

 

그러나 *vp(변수)와 같이 주소가 가지고 있는 값에는 접근할수없다. 이유는 주소가 몇 바이트 크기의메모리를 참조해야 할지 알수 없기 때문이다.

 

void형 포인터 변수 vp는 자료형이 void이므로 몇 바이트의 크기를 어떤 형태로 접근해야 할지 알수없다. 그래서 void형 포인터 변수는 형변환해서 사용하거나 다른 포인터 변수에 대입하여 사용한다.

 

예제)

#include <stdio.h>

void main()
{
 char c='a';
 int n=10;
 void *vp;
 vp=&c;
 printf("%c %c \n",c,*(char*)vp);
 vp=&n;
 printf("%d %d \n",n,*(int*)vp);
}

 

[출처] void형포인터란?|작성자 반기문


반응형