Page 148 고등학교 프로그래밍 교과서
P. 148










3 포인터를 함수의 매개 변수로 사용하자






함수에 매개 변수로 값을 전달할 때 값 자체를 전달하는 방법과 값이 저장되어 있
는 주소를 전달하는 방식이 있다. 함수의 매개 변수로 포인터를 사용하면 값이 저장
되어 있는 주소를 전달할 수 있다.

다음은 로봇이 미로를 빠져 나오는 프로그램이다. 이때 값 자체를 전달하는
robotMove( ) 함수에서는 로봇이 현재 위치에서 n칸만큼 직진하는 프로그램을 작
성해도 위치 이동이 일어나지 않는다.


프로그램


01 #include
02 void robotMove(int pxp, int pyp, int mx, int my);
03 void robotMovePt(int *pxp, int *pyp, int mx, int my);
04 int main(void)
05 {
06 int x = 1;
로봇의 현재 위치 x, y
07 int y = 1;
08 robotMove(x, y, 1, 2); 위치 이동 함수 호출
09 printf("이동한 위치 (%d, %d) \n", x, y);
10 robotMovePt(&x, &y, 1, 2);
11 printf("이동한 위치 (%d, %d) \n", x, y);
12 return 0;
포인터를 매개 변수로 활용한 함수 호출
13 }
14 void robotMove(int pxp, int pyp, int mx, int my)
15 {
16 pxp = pxp + mx;
17 pyp = pyp + my;
18 }
19 void robotMovePt(int *pxp, int *pyp, int mx, int my)
20 {
21 *pxp = *pxp + mx;
22 *pyp = *pyp + my;
23 }


실행 결과

이동한 위치 (1, 1)
이동한 위치 (2, 3)



146 Ⅱ. C 프로그래밍의 기초





(책)2015프로그래밍-교과서3차심의본 본문.indb 146 2017-09-05 오후 4:16:32
   143   144   145   146   147   148   149   150   151   152   153