포인터 변수로 다른 변수의 값 바꾸기

포인터 변수의 앞에 붙는 '*'문자는 포인터 변수가 가리키는 메모리에 들어있는 값을 말한다.

포인터 변수는 주소값을 가지고 있으므로 *포인터 변수는 그 주소의 값이 된다.

 

다음의 예제로 포인터 변수를 이용하여 다른 변수의 값을 변경하는 사용법을 보자

 

#include <stdio.h>

int main()
{
        int num = 3;, *pnum = &num;        
        
        *pnum = 9;
        printf("Adress of num : %p\n",&num);
        printf("value of num : %d\n", num);
        printf("value of pnum : %p\n", pnum);
        printf("value of *pnum : %d\n", *pnum);
        return 0;
}

 

<실행 결과>

 

pointer2-0.png

 

*pnum = 9;

여기서 *pnum 은 변수 pnum 이 가리키는 메모리의 내용을 말하므로, 변수 num의 값이 된다.

따라서 변수 num의 값을 9로 바꾸는 것이 된다.

 

pointer2-1.png