c언어책보면서 공부중인데 포인터에서
메모리주소는 부호없는 정수(unsigned int)라고 햇거든....
그래서 sizeof(unsigned int) 출력해보니 4가 나와써
그러면 포인터주소는4바이트라는 거자나
그런데sizeof(unsigned int *)는 왜8이 나오는거지
메모리주소는 부호없는 정수(unsigned int)라고 햇거든....
그래서 sizeof(unsigned int) 출력해보니 4가 나와써
그러면 포인터주소는4바이트라는 거자나
그런데sizeof(unsigned int *)는 왜8이 나오는거지
주소는 부호없는 정수가 맞음. 그러나 unsigned int와는 다름. 컴퓨터 시스템 자체에서 부호없는 정수로서 생각한다는 얘기이고 unsigned int는 c언어에서 사용하는 표준 자료형중 하나임 . 니 시스템은 64bit시스템이기 때문에 메모리주소가 8바이트로 나오는거임
자세한 내용은 어셈블리를 공부하다보면 알게될거임 unsigned int는 c언어의 부호없는 정수를 위한 자료형일 뿐이고 unsigned int*는 c언어에서 메모리 주소값을 담기위한 포인터. 특히 64bit시스템에선 메모리 주소를 8바이트로 표현하기때문에 sizeof를 쓰면 8바이트가 나오는거지
int i = 0x1B2B3B4B; int *pi = &i; unsigned addr = (unsigned)pi; 예제에 저렇게설명해주거든 그러면 예제가 64bit시스템에선 호환안되는거야??