포인터 크기에 관해
해가빛
2023.04.01
질문 제목 :
포인터 크기에 관해
질문 내용 :
32비트 시스템에서 포인터 크기는 4바이트 64비트 시스템에서는 포인터 크기가 8바이트로 할당 되는걸로 아는데요32비트 시스템에서 프로그래밍을 한다고 쳤을때 double이 8바이트잖아요? 근데 더블형 포인터를 만들었을때 포인터는 4바이트인데 어떻게 8바이트인 double을 가르키고 주소값을 포함시킬수 있는지 궁금하네요....;;; 가르쳐 주세요 ㅠ
-
아리에스
포인터는 아파트 호수이고,
double 은 집에 사는 사람의 수 정도됩니다.
포인터가 double을 가리키는 것이 아니고, double 이 저장된 메모리의 위치를 나타냅니다.
더구나 double 저장된 8 바이트 메모리 중 첫번째 바이트가 저장된 메모리의 주소입니다.
double 이 저장된 메모리라고 간주되는 주소이기 때문에
이 첫번째 바이트가 포함된 메모리부터 8 바이트에 하나의 자료가 저장되어 있다고 보는 것이죠. -
스콜피온
바이트 마다 시스템 폭(32비트, 64비트)의 숫자로 번호가 매겨져 있는데
그 숫자가 그 바이트의 주소고
그런 식으로 주소가 매겨진 연속된 8개의 바이트가 더블형입니다.
메모리 주소는 운영체제가 관리하는 것이고
변수는 프로그래머가 관리하는 것입니다. -
이든샘
더블형의 변수는 8바이트지만 그 변수의 주소값은 32비트 시스템에서 4바이트입니다.
즉 형이 어떻든 포인터변수에 저장되는 값은 주소값이기 떄문에 항상 4바이트 입니다.