Written on
·
98
2
&i와 &f의 데이터 타입이 같다는 것은 이해를 하였으나 주소값을 void형으로 저장해야 하는 필요성을 이해하지 못하겠습니다.
Answer 1
3
안녕하세요? 질문&답변 도우미 Soobak 입니다.
void*
타입은 정수형, 실수형, 구조체 등 다양한 자료형의 포인터를 하나의 포인터로 관리할 수 있습니다.
즉, 특정 자료형에 의존하지 않고 일반화하여 하나의 포인터 변수로 저장하고 관리할 수 있다는 장점이 있습니다.
강의에서의 예시에서는, void *my_void;
라는 void*
형 포인터 변수에, 정수형 변수 i
의 '주소' 와 , 실수형 변수 f
의 '주소' 를 void*
로 형 변환하여 저장합니다.
메모리에 저장된 데이터를 해석하는 방식이 각각의 자료형에 따라서 다르기 때문에,
포인터 역시 '어떠한 자료형 데이터' 의 주소를 가리키는 것인지 알 수 있도록 해주어야 합니다.
따라서, void*
와 같은 무치형 자료형으로 다른 다양한 자료형들을 형변환하여 관리한 후, 필요할 때 해당 자료형으로 다시 형변환하여 사용한다면, 자료형에 의존하지 않는 유연한 코드를 작성할 수 있다는 장점이 있습니다.
혹시나 지금 잘 이해가 되지 않으시더라도, 추후 섹션 6 행렬, 문자열, 포인터, 참조 에서 포인터 부분에 대하여 학습하시고 나면 자연스럽게 이해가 되실 내용들이므로, 지금 단계에서 너무 걱정하지 마시고 학습을 이어나가시는 것을 추천 드려봅니다.
주말인데도 열일하시네요 답변 감사합니다!