[ void ] : 아무런 타입 없음

 

[ void 포인터 ] : 원본의 자료형이 정해지지 않은 포인터

- 특징

   >> 원본의 자료형이 정해지지 않음

   >> 어떠한 타입의 변수 주소를 다 저장할 수 있음

   >> 어떠한 타입으로 해석할 지가 정해져 있지 않기에, 역참조 불가능

   >> 어떠한 타입으로 주소 연산을 할 지가 정해져 있지 않기에, 주소 연산 불가능

 

#include <stdio.h>

int main(){
	void* pVoid = nullptr;
    
    { 
    	int a = 0;
        float b = 0.0f;
        double c = 0.;
        long long d = 0;
        
        pVoid = &a;
        pVoid = &b;
        pVoid = &c;
        pVoid = &d;
        	// 가능
            // 모든 타입의 변수 주소를 저장할 수 있음
        
        *pVoid; 
        	// 불가능 - error
            // 어떤 타입으로 해석할 지가 안 정해져 있음
            // 역참조 불가능
        
        pVoid + 1;
        	// 불가능 - error
            // 어떤 타입으로 변수 주소를 연산할 지가 안 정해져 있음
            // 주소 연산 불가능
    }
	return 0;
}

 

'C++ > 기본 문법' 카테고리의 다른 글

동적할당 && 가변배열  (0) 2022.07.01
포인터 && const  (0) 2022.06.30
배열 && 구조체  (0) 2022.06.30

+ Recent posts