더북(TheBook)

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;
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.