반응형
void*
void는 일반적으로 함수의 리턴값이 없을때 지정해 주는데 void*를 통해 void형 포인터를 만들 수 있다. void*의 특징으로
- 원본의 자료형을 정하지 않음(?)
- 어떠한 타입의 변수의 주소든 다 저장 가능
- 역참조 불가능
- 주소 연산 불가능
이 있겠다. 하나씩 살펴보자
- 원본의 자료형을 정하지 않음 & 2. 어떤 타입의 변수의 주소든 다 저장 가능
int a = 0;
float b = 0.f;
void* pVoid = nullptr;
pVoid = &a;
pVoid = &b;
위 코드와 같이 void 포인터는 원본의 자료형을 정하지 않았기 때문에 어떤 타입의 변수의 주소든 다 저장이 가능하다.
- 역참조 불가능
*pvoid //불가능
pvoid를 통해 원본값을 불러올 수 없다. 왜냐하면 원본의 자료형을 정하지 않았기 때문.
- 주소 연산 불가능
pVoid += 1; //불가능
마찬가지로, 원본의 자료형이 정해지지 않았기 때문에 주소 연산을 할때 몇바이트씩 움직여야하는지 정할수 없어 문법적 오류가 난다.
반응형
'프로그래밍 언어 > cpp' 카테고리의 다른 글
[C++] 클래스 기초와 생성자, 소멸자 (0) | 2023.02.08 |
---|---|
[C++] 함수 포인터 (0) | 2023.02.08 |
[C++] 상수(const)와 포인터 (0) | 2023.02.08 |
[C++] 정적(static) 변수와 외부(extern) 변수, 분할구현에서의 전역변수 사용 (0) | 2023.02.07 |
[C++] 헤더파일을 이용한 분할 구현 (0) | 2023.02.07 |