C언어 포인터 부분 질문좀 부탁드립니다.
안다미로
#include stdio.hint main(void)
{
char *pcc;
char *pc;
int *pi;
pc = (char*)10000;
pcc = (char*)10000;
pi = (int*)10000;
pc++;
pi++;
printf(%d\n,pcc);
printf(%d\n,pc);
printf(%d\n,pi);
return 0;
}
처음에 변수 선언하는 부분에서 char *pc 와 char*pcc 를 선언해 준것이고
두번째 빨간색에서는 무슨짓을 한것인지 이해가 가질 않습니다. 설명좀 부탁드려요 우선결과는 다음과 같이 나옵니다
10000
10001
10004
char형이라서 1바이트 증가하는것을 설명하기 위해 교재에 예시로 나와있는것입니다.
우선 저는저 빨간문장이주소값을 정해 주는 것이라고 생각하였는데 만약 제 생각이 맞다면 pc와 pcc 둘다 주소값이 10000으로
같아지는 것인데,
생각해보면 char형을 가지고있는 pc와 int형을 가지고 있는 pi가 동시에 10000이라는 주소에 저장되어있는것은 또 아닌것 같아서요...
답변좀 부탁드립니다.
-
공주
아 그렇군요. 제가 공부가 부족했던거 같아요. 감사합니다 . ㅎㅎ
-
해가빛
포인터는 가리키는 역할을 하는것이지 어딜 가리킨다고 그곳에 값을 넣거나 해도 되는건 아녀요 저건 int형 포인터, char형 포인터가 단지 같은 부분을 가리키게 한거에요
-
트런들
답변 감사합니다. 10000이라는 주소에 int형 그리고 char 형 이렇게 동시에 선언이 가능한가요?
-
곰돌곰돌
pc,pcc,pi는 10000이란 주소(?)를 가리키게 됩니다.