더북(TheBook)

변수를 선언하면 메모리에 철수라는 공간이 생깁니다. 그리고 철수라는 공간의 위치를 나타내는 주소가 있습니다. 우리는 101호라고 읽지만, 실제 메모리에서는 어떤 값일지 모릅니다. 그런데 이 값을 알아내는 방법이 있습니다. 변수명 앞에 &를 붙여 출력하면 변수의 주소를 알 수 있습니다. 그리고 변수의 주소를 출력하는 방법은 변수의 값을 출력하는 방법과 조금 다릅니다. 서식 지정자에 %d 대신 포인터를 의미하는 %p를 사용합니다. 그러면 메모리 주소를 16진수 형태로 출력합니다. 한번 실행해 볼까요?

7.2.1 변수와메모리.c

int main(void) {
    int 철수 = 1;
    int 영희 = 2;
    int 민수 = 3;
    printf("철수네 주소 : %p, 암호 : %d\n", &철수, 철수); // 변수의 주소 출력
    return 0;
}

실행결과 icon_con

철수네 주소 : 00000080D0BEFA24, 암호 : 1

실행결과를 보면 암호는 변수의 값인 1이 그대로 나왔고, 철수네 주소는 00000080D0BEFA24라는 긴 값이 나옵니다. 이 값은 변수 철수가 메모리의 어느 위치에 있는지를 나타냅니다. 즉, 변수의 주소입니다.

TIP     실행결과에서 변수의 주소가 책과 달라도 당황하지 마세요. 변수의 주소는 컴퓨터마다 다르고 심지어 같은 컴퓨터라도 실행할 때마다 다르게 나옵니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.