본문 바로가기

프로그래밍/c언어

포인터

반응형

변수는 데이터를 저장하지만 포인터는 주소를 저장한다.

 

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씩 증가한다.

반응형

'프로그래밍 > c언어' 카테고리의 다른 글

파일 입출력  (0) 2015.02.24
동전 앞뒤 맞추기  (0) 2015.02.12
예제(미완성)  (0) 2015.02.11
20150209 예제 실습  (0) 2015.02.09
예제  (0) 2015.02.06