void* pVoid = nullptr;
얘는 모든 형태의 주소를 다 받을 수 있음#include <stdio.h>
int main(void)
{
// void
void* pVoid = nullptr;
{
int a = 0;
float f = 0.f;
double d = 0.;
long long ll = 0;
pVoid = &a;
pVoid = &f;
pVoid = &d;
pVoid = ≪
// *pVoid = 100; 이런식의 역참조는 안됨
}
return 0;
}
이런식으로 전부 다 가능
값의 형태를 void, 즉 어떤 형태로 보지않기 때문에 전부 다 받을 수 있는거고
역참조는 당연히 안됨, int는 4바이트, double은 8바이트 이렇게 읽겠지만 void는 딱히 어떤 형태로 보지 않기 때문
거기에 pVoid + 1
이런것도 안됨, 주소에 +1을 한다는건 int는 4바이트, double은 8바이트만큼의 주소를 건너뛴다는 의미인데 void는 그게 정해지지 않았기 때문