C++ void 포인터란? (generic 포인터 , 함수형 포인터)
2024. 1. 30. 10:50ㆍ개발공부/C, C++
void pointer (generic pointer)는 모든 데이터 자료형의 주소를 저장할 수 있는 데이터 타입이다.
심지어 함수도 가리킬 수 있는 포인터이다.
void* 란
주소값을 가지는 포인터 변수이지만, 아직 어떤 방식으로 역참조를 할지는 정해지지 않았다는 뜻이 된다.
참고로 const ,volatile형식의 변수는 void*로 가리킬 수 없다.
void* vpointer=nullptr;
int a = 0;
float b = 0.5f;
double c = 0.05;
long long d = 50;
vpointer = &a;
vpointer = &b;
vpointer = &c;
vpointer = &d;
위코드는 잘 실행되지만 역참조시 (아래) 아래와 같이 정확한 자료형을 다시 할당해 주어야 한다.
void* vpointer=nullptr;
int a = 510;
vpointer = &a;
int* ipointer = (int*)vpointer;
cout << *ipointer << endl;
'개발공부 > C, C++' 카테고리의 다른 글
[C++ Thread] promise , future 작업 기반 비동기 프로그래밍 (0) | 2024.02.27 |
---|---|
far ,near pointer란? (0) | 2024.01.30 |
함수의 매개변수 앞에 있는 const는 왜 사용하는가? (0) | 2022.11.18 |