인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

skyofvenus01's profile image
skyofvenus01

asked

C++ by Hong Jeong-mo

2.4 Void

2.4 무치형 강의에서 질문이 있습니다.

Written on

·

98

2

&i와 &f의 데이터 타입이 같다는 것은 이해를 하였으나 주소값을 void형으로 저장해야 하는 필요성을 이해하지 못하겠습니다.

c++2.4무치형(void)

Answer 1

3

안녕하세요? 질문&답변 도우미 Soobak 입니다.

 

void* 타입은 정수형, 실수형, 구조체 등 다양한 자료형의 포인터를 하나의 포인터로 관리할 수 있습니다.

즉, 특정 자료형에 의존하지 않고 일반화하여 하나의 포인터 변수로 저장하고 관리할 수 있다는 장점이 있습니다.

 

강의에서의 예시에서는, void *my_void; 라는 void* 형 포인터 변수에, 정수형 변수 i 의 '주소' 와 , 실수형 변수 f 의 '주소' 를 void* 로 형 변환하여 저장합니다.

메모리에 저장된 데이터를 해석하는 방식이 각각의 자료형에 따라서 다르기 때문에,

포인터 역시 '어떠한 자료형 데이터' 의 주소를 가리키는 것인지 알 수 있도록 해주어야 합니다.

따라서, void* 와 같은 무치형 자료형으로 다른 다양한 자료형들을 형변환하여 관리한 후, 필요할 때 해당 자료형으로 다시 형변환하여 사용한다면, 자료형에 의존하지 않는 유연한 코드를 작성할 수 있다는 장점이 있습니다.

혹시나 지금 잘 이해가 되지 않으시더라도, 추후 섹션 6 행렬, 문자열, 포인터, 참조 에서 포인터 부분에 대하여 학습하시고 나면 자연스럽게 이해가 되실 내용들이므로, 지금 단계에서 너무 걱정하지 마시고 학습을 이어나가시는 것을 추천 드려봅니다.

skyofvenus01님의 프로필 이미지
skyofvenus01
Questioner

주말인데도 열일하시네요 답변 감사합니다!

skyofvenus01's profile image
skyofvenus01

asked

Ask a question