포인터 변수

포인터변수는 메모리의 주소를 값으로 가지는 변수이다.프로그램에서 메모리에 직접 접근할 때 사용한다. C에서 포인터 변수의 크기는 4바이트 이다. 포인터 변수 pchar 가 변수 x 의 주소를 가지고 있을 때, pchar는 x를 가리킨다고 한다.

int 형을 가리키는 포인터 변수 pnum 은 다음과 같이 선언한다.

 

int *pnum;

 

변수이름 앞에 * 가 온다. pnum의 타입은 포인터 형이다.

 

다음의 예제로 포인터 변수의 사용법을 보자

 

#include <stdio.h>

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

 

pointer1.png

 

int num;

int *pnum;

*문자는 변수 pnum이 int 형을 가리키는 포인트 변수로 선언됨을 의미한다. 변수 xp는 int형의 값이 들어있는 메모리 공간의 주소를 갖고, 크기는 4바이트이다.

 pointer2.png

 

num = 25;

변수 num의 값이 25로 초기화 된다.

 pointer3.png

pnum = &num;

포인터 변수 pnum의 초기값으로 변수 num의 주소가 부여된다. 이 명령문으로 초기화 된다.

 

pointer4.png