반응형
변수는 데이터를 저장하지만 포인터는 주소를 저장한다.
int b = 1;
int *a = &b ->a라는 포인터에 b변수의 주소를 대입
printf("%d",*b); -> 출력은 1이나온다. 그이유는 a가 b 주소를 가르키고 있기 때문이다.
주소를 저장하는 배열 예제
#include <stdio.h>
int main()
{
char a = 'a', b = 'b', c = 'c';
char *ch[3] = { &a, &b, &c }; -> char형 주소를 저장하는 배열 [3] 선언
printf("%c %c %c \n", a, b, c);
printf("%c %c %c ", *ch[0], *ch[1], *ch[2]);
return 0;
}
출력값 : a b c
a b c
->char형 주소값을 저장하는 배열 ch 를 선언한다음에 a,b,c 변수의 주소를 대입한다. 그러면 위의 결과값과 같이 그 변수의 주소를 가르켜 값이 출력되게 된다.
int형을 *char 로 가르키면 배열을 1칸이동시 1byte씩증가!
char 형을 *int 로 가르키면 배열을 1칸이동시 4byte씩 증가한다.
반응형