|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6307 [복사]
변수를 크게 주소값, 내용값, 크기정보 라는 개념으로 이해하고 있습니다.
int num=10;
int arr[3]={1,2,3};
int * ptr = & num;
num arr ptr
주소값 0x000010 0x000020 0x000030 :임의지정을 가정
내용값 10 0x000020 0x000010
크기정보 4바이트 12바이트 4바이트(32비트)
질문1. 이렇게 이해하며 넘어가도 괜찮을까요?
-------------------------------------------------------------------------------------
질문2. 배열arr과 arr[0]는 주소값이 같은데 내용값이 다르다? 실질적으로 메모리에 어떻게 저장되는지가 궁금합니다.
arr(상수포인터) arr[0]
주소값 0x000020 0x000020
내용값 0x000020 1
크기정보 12바이트 4바이트
어떻게 같은 메모리 주소에 다른 내용이 입력되어 있는 지 궁금합니다.
----------------------------------------------------------------------------------------
질문3. 크기정보가 어떻게 메모리상에 저장되는 지도 궁금합니다.
결국 변수 num의 경우 4바이트에 00000000 00000000 00000000 00000010 이렇게
내용값으로만 저장이 된다면 크기 정보는 어디서 알 수 있게 되나요?
그렇다면 변수의 크기정보나 이런 것들을 다루는 다른 테이블이 존재하는 건가요?
바뿌신 중에도 고쳐야 할 부분이나 이해에 도움이 될만한 것을 검색할 수 있는 키워드를 주신다면
정말 감사하겠습니다. 복받으세요~. |
Hit : 6116 Date : 2013/02/20 11:17
|