*포인터변수 - 다른 객체의 메모리 주소를 저장하는 변수이다. 메모리에 저장.
이진트리와 연결 리스트를 구현하는데 사용된다.
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에 할당된 바이트외에도 인접한 바이트를 사용함으로써 에러를 야기시킬 수 있다.