인프런 커뮤니티 질문&답변

잉잉님의 프로필 이미지

작성한 질문수

홍정모의 따라하며 배우는 C++

2.1 기본 자료형 소개

uintpr_t와 void*의 차이점

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

 

등이 있는데 아직 잘 이해가 되질 않네요...ㅠㅠ

답변 1

1

안소님의 프로필 이미지

2021. 11. 21. 00:18

10진수 정수로 출력하기 위해서 맞는 것 같아요!

https://woo-dev.tistory.com/197

https://pythonq.com/so/c%2B%2B/10924

잉잉님의 프로필 이미지
잉잉
질문자

2021. 11. 22. 16:44

감사합니다!

잉잉님의 프로필 이미지

작성한 질문수

질문하기