21.11.19 18:50 작성
·
255
0
안녕하세요.
2.1강 강의 1분 40여초 부터 나오는 예시 코드에서
(uintptr_t)를 사용해주는 이유가 궁금해서 질문 남깁니다.
int i = -1;
cout << (uintptr_t)static_cast<void*>(&i) << endl;
cout << static_cast<void*>(&i) << endl;
cout << &i << endl;
를 차례로 출력을 했을 때
7731616 0075F9A0 0075F9A0
가 출력이 되었는데요.
&연산자가 해당 변수가 저장된 주소를 가리킨다고 이해하고
(void*)의 경우 Datatype을 모르는 상태에서도 주소를 가리킬 수 있는 포인터라고 알고 있는데요.
(uintptr_t)의 역할이 무엇인지 궁금하여 질문 남깁니다.
16진수를 10진수로 출력하기 위해 사용하는 것인가요?
제가 참고한 자료는
https://stackoverflow.com/questions/40941825/understanding-void-against-intptr-t-and-uintptr-t
https://stackoverflow.com/questions/1845482/what-is-uintptr-t-data-type
등이 있는데 아직 잘 이해가 되질 않네요...ㅠㅠ
2021. 11. 22. 16:44
감사합니다!