26. void*

P4·2023년 6월 15일
0
post-thumbnail

void

  • 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 = &ll;

        // *pVoid = 100; 이런식의 역참조는 안됨
	}

    return 0;

}
  • 이런식으로 전부 다 가능

  • 값의 형태를 void, 즉 어떤 형태로 보지않기 때문에 전부 다 받을 수 있는거고

  • 역참조는 당연히 안됨, int는 4바이트, double은 8바이트 이렇게 읽겠지만 void는 딱히 어떤 형태로 보지 않기 때문

  • 거기에 pVoid + 1 이런것도 안됨, 주소에 +1을 한다는건 int는 4바이트, double은 8바이트만큼의 주소를 건너뛴다는 의미인데 void는 그게 정해지지 않았기 때문

profile
지식을 담습니다.

0개의 댓글