간단한 void*
(추후 보강 예정)
void 란, '~이 하나도 없는' 이라는 뜻으로 void*는 자료형이 없는 포인터 변수라는 뜻입니다.
즉, 자료형에 제약을 받지 않고, 어떤 자료형의 주소라도 저장할 수 있는 포인터 변수입니다.
(코드)
위의 코드를 실행하면 이와 같은 에러가 발생합니다.
즉, void* 형 변수는 주소만 저장할 수 있는 변수로, 값에 간접 접근하거나 변경할 수는 없습니다.
이 코드를 변경해 값을 출력해 보도록 하겠습니다.
값을 출력 하려면 어떻게 변경해야 할까요?
(코드)
(결과)
void* 를 강제 형변환해야 합니다.
강제 형변환을 통해 주소에 저장된 값을 참조 했습니다. 결과는 위와 같이 a와 3.141592 가 출력되었습니다.
이번엔 값을 변경해 보도록 하겠습니다.
(코드)
(결과)
이 역시 강제 형변환을 통해 변수에 저장된 값을 바꿔주었습니다.
void*를 이용할 때 가장 중요한 것은 강제 형변환입니다. 이를 통해 값을 참조할 수도, 변경할 수 도 있습니다.
'예전 > C, C++' 카테고리의 다른 글
[C/C++] 레퍼런스 (0) | 2012.10.19 |
---|---|
[C/C++] const 키워드 (4) | 2012.10.17 |
[C/C++] 변수 (지역, 전역, static, extern) (0) | 2012.10.16 |
[C/C++] malloc/free 와 new/delete (0) | 2012.10.15 |
[C/C++] 다형성 (0) | 2012.10.15 |