달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

주소와 포인터의 관계

 

%02x 하면..16진수로 2자리를 써서 출력하라는 뜻.

inum의 주소로부터…저장된 값은 98 ef cd ab 00. 이유는 저장방식이 little endian 이므로.

*little endian 실제 메모리에 저장할 때는, 마지막 바이트에 해당하는 숫자를 시작으로 맨 앞 바이트에 해당하는 숫자를 마지막으로 저장하는 방식. 이는 덧셈과정 (덧셈에서는 자리 올림을 이유로 맨 끝자리부터 계산)과 동일하기 때문에, 연산속도에 있어서 big endian 보다 빠름.

*big endian: little endian과 반대 . 연산은 느리나 대소비교가 빠름.

 

 

메모리 주소를 한 바이트씩 이동하면서 저장된 값을 확인한다.

실수의 크기는 32비트 즉 4바이트 이므로, 출력 시에 4바이트 내에 있는 숫자(시작주소+3 즉,icnt 3)에서 표현된 숫자 까지만이 저장된 값이고, 나머지는 실수의 메모리 범위 바깥에 있는 수이다.

 

 

바깥포문을 두 번째 거칠 때에는 메모리 주소가 처음 실수의 주소로부터 16이 더해지므로, 의미가 없는 값 (즉, 실수변수가 아닌 메모리 공간에 저장된 값)이다.

 

Posted by C언어 보이
|