주소와 포인터의 관계
%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이 더해지므로, 의미가 없는 값 (즉, 실수변수가 아닌 메모리 공간에 저장된 값)이다.
'C언어 업무보고' 카테고리의 다른 글
140320 02 함수,메소드,프로시져,출력함수 리턴값, printf 반환형 (0) | 2014.03.20 |
---|---|
140320 주소와 포인터, 실수의 저장방식, 지수부, 가수부 (0) | 2014.03.20 |
140318 포인터, 주소, pointer, 피보나치 수열 프로그램 (0) | 2014.03.18 |
0314 반복문,초기식,조건식,반복식,조건문,for,if else (0) | 2014.03.14 |
0312 폰트, 화면주사방식, 아스키코드, 형변환 (0) | 2014.03.12 |