포인터 개념 질문!!
Sonya
질문 제목 :
포인터 개념 질문!!
질문 요약 :
포인터 개념 질문!!
질문 내용 : #includestdio.h#includestring.h
int main(){ char ch; int in; double db;
char *cp = &ch; int *ip = ∈ double *dp = &db; printf(포인터 변수 자체의 크기 : %d, %d, %d\n, sizeof(cp), sizeof(ip), sizeof(dp)); printf(그들이 가리키는 변수의 크기 : %d, %d, %d\n, sizeof(*cp), sizeof(*ip), sizeof(*dp));
return 0;}
당최 선언부터 시작해서 이해가 안되요...
변수선언은 ch,in,db로 해놓고 sizeof 안에는 cp,ip,dp가 들어가대니...
설명 좀 부탁드려요 ㅠㅠㅠ
-
알프레드
언제 쓸지 몰라서 항상 쓰는 연습을 해두는거에요..ㅋ 위 코드에서는 플밍님 말씀대로 필요없어요..ㅎㅎ
-
연다홍
string.h는 필요없어보입니다 . 저코드상에서는
-
Elfin
#include string.h는 왜 해준거예요??
-
희나리
정말 감사합니다!!! 엄청 많은 도움이 됬어요...!!! 이해가 팍팍되요!!
-
라이브라
간단히 말씀드리면
char ch;
int in;
double db;
이부분은 일반 변수 를 선언 한것이고
char *cp = &ch;
int *ip = ∈
double *dp = &db;
이부분은 주소값을 입력 받는 포인터 변수를 선언한것입니다.
cp=&ch 포인터는 주소값을 받아야 하니까 주소연산자 & 붙여줘 위에 선언한 ch 변수의 주소 값을 넣어준것입니다.
sizeof(cp) 이부분은 포인터 변수 의 크기 즉 4 바이트를 출력하고
si -
간조롱
sizeof는 단순히 그 변수의 크기를 보여 줍니다.
아마 저 코드의 목적은 char 형이 1byte인데 char*은 4byte이고
double은 8byte인데 double* 은 4byte라는 것을 보여주는게 목적일 겁니다.