7.2.3 포인터로 다른 변수의 값 바꾸기
미션맨에게 두 번째 미션이 떨어졌습니다. 두 번째 미션은 각 집의 암호에 3을 곱하라는 겁니다. 어떻게 하면 될까요? 미션맨은 첫 번째 미션에서 주소로 암호를 알아냈죠? 이 방법을 쓰면 됩니다.
미션맨이 다시 철수네 주소를 알아냅니다. 철수네 주소가 변수 미션맨에 들어 있으니 암호, 즉 값은 *미션맨으로 확인할 수 있습니다. 이번 미션은 철수네 암호에 곱하기 3을 해야 합니다. 따라서 *미션맨에 곱하기 3을 하고 이를 다시 *미션맨에 저장합니다. 여기까지 작성하고 값을 출력해 봅시다.
7.2.3 포인터로값바꾸기.c
int main(void) {
int 철수 = 1;
int 영희 = 2;
int 민수 = 3;
// 변수의 주소 출력
printf("철수네 주소 : %p, 암호 : %d\n", &철수, 철수);
printf("영희네 주소 : %p, 암호 : %d\n", &영희, 영희);
printf("민수네 주소 : %p, 암호 : %d\n", &민수, 민수);
// 포인터 변수의 값 출력
int * 미션맨;
미션맨 = &철수;
printf("미션맨이 방문한 곳의 주소 : %p, 암호 : %d\n", 미션맨, *미션맨);
미션맨 = &영희;
printf("미션맨이 방문하는 곳의 주소 : %p, 암호 : %d\n", 미션맨, *미션맨);
미션맨 = &민수;
printf("미션맨이 방문하는 곳의 주소 : %p, 암호 : %d\n", 미션맨, *미션맨);
// 포인터 변수로 바꾼 값 출력
미션맨 = &철수;
*미션맨 = *미션맨 * 3;
printf("미션맨이 암호를 바꾼 곳의 주소 : %p, 암호 : %d\n", 미션맨, *미션맨);
return 0;
}