포인터

C : 2007. 11. 3. 11:33

*포인터변수 - 다른 객체의 메모리 주소를 저장하는 변수이다. 메모리에 저장.

                    이진트리와 연결 리스트를 구현하는데 사용된다.


type *변수 이름


& : 뒤에 오는 변수의 주소를 반환

* : 뒤에 오는 주소에 저장된 값을 반환


p.197
#include <stdio.h>
int main(void)
{
 int *p, q;

 q = 199;
 p = &q;        //199가 저장된 q의 주소를 포인터변수 p에 저장한다.

 printf("%d", *p);      //포인터를 이용해 q에 저장된 값을 출력한다.
}


p.198
#include <stdio.h>
int main(void)
{
 int *p, q;

 p = &q;          //포인터 p와 변수 q를 연결한다.
 *p = 199;       //포인터 p가 가리키는 주소에 199를 치환한다.

 printf("q's value is %d", q);

 return 0;
}

-----------

int q;

double *fp;        //포인터의 기초형은 일치해야 한다.


fp = &q;

-----------

int형은 double 보다 실이가 짧기 때문에 q에 인접한 메모리까지 치환된다.

q에 할당된 바이트외에도 인접한 바이트를 사용함으로써 에러를 야기시킬 수 있다.


Posted by 청웨일