int , char , float , double 자료형 포인터 변수를 선언해준후에
sizeof 를 이용해 해당 변수사이즈를 출력 했는데 모두 4 바이트로 출력됐는데 이거 왜그러는거야?
char 은 1바이트
int ,float 는 4바이트
double 8바이트 아니야?
왜 모두 4바이트로 출력되는거야?
int , char , float , double 자료형 포인터 변수를 선언해준후에
sizeof 를 이용해 해당 변수사이즈를 출력 했는데 모두 4 바이트로 출력됐는데 이거 왜그러는거야?
char 은 1바이트
int ,float 는 4바이트
double 8바이트 아니야?
왜 모두 4바이트로 출력되는거야?
11평집이나 33평집이나 주소는 편지봉투에 적을 수 있다에요? - DCW
주소의 위치값이니깐 실제 사용할 값의 크기랑은 상관없징
ㅋㅋㅋㅋㅋㅋㅋ 시발 비유 웃기네
그런거야? 한개당 4바이트인데 char 1바이트 하나 담으면 나머지 3바이트 버린다는 그런건 아닌건가?
ㅇㅇ아님
메모리(RAM)에 있는 데이터 번지수는 데이터 형에 상관없이 같은 크기를 갖음. 다만 데이터형별로 포인터를 지정하는 것은 char *p 포인터는 p++ 하면 1 증가, int *p 포인터는 p++ 하면 4 증가 double *p 포인터는 p++하면 8 증가 등등... 포인터값 프린트 하는 간단 프로그램 짜보면 금방 이해될 것임.
포인터는 그냥 "메모리 주소" 개념을 C언어에서 포인터라는 특수한 타입으로 취급해서 나타낸 건데, 그 크기는 MAR(Memory Address Register) 크기에 좌우된다. 즉 CPU의 워드 사이즈에 영향을 받아. 가리키는 데이터의 크기랑 상관 없지.
느그집 컴퓨터에서만 그래