스파이는 각 집의 암호에서 1을 빼야 합니다. 뭘 해야 할까요? 미션맨이 처음 방문한 곳으로 갑니다. 그리고 스파이가 방문한 곳의 값, 즉 *스파이에서 1을 빼면 됩니다. 미션맨은 처음에 철수네를 방문합니다. 이렇게 하면 철수 = 철수 - 1;과 완전히 똑같은 코드가 됩니다. 그럼 스파이가 방문한 곳의 주소와 암호를 출력해 봅시다.
7.2.4 포인터추가하기.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", 미션맨, *미션맨);
*미션맨 = *미션맨 * 3;
printf("미션맨이 암호를 바꾼 곳의 주소 : %p, 암호 : %d\n", 미션맨, *미션맨);
// 포인터 변수를 추가해 값 바꾸기
printf("\n>> 스파이가 미션을 수행하는 중 <<\n"); // 구분을 위해 추가
int * 스파이 = 미션맨;
*스파이 = *스파이 - 1; // 철수 = 철수 - 1;
printf("스파이가 방문한 곳의 주소 : %p, 암호 : %d\n\n", 스파이, *스파이);
return 0;
}
실행결과 |
철수네 주소 : 00000080D0BEFA24, 암호 : 1 영희네 주소 : 00000080D0BEFA44, 암호 : 2 민수네 주소 : 00000080D0BEFA64, 암호 : 3 미션맨이 방문한 곳의 주소 : 00000080D0BEFA24, 암호 : 1 미션맨이 암호를 바꾼 곳의 주소 : 00000080D0BEFA24, 암호 : 3 >> 스파이가 미션을 수행하는 중 << 스파이가 방문한 곳의 주소 : 00000080D0BEFA24, 암호 : 2 |