주소 값을 저장하는 변수

int iData;

&iData   - 선언된 데이터의 대표 주소를 추출하는 연산자
iData=20;   이름을 통한 접근
*(&iData)=20;   주소를 통한 접근(직접 참조)

int* p;   int형 포인터 p(int형 변수의 주소를 저장)

p=&iData; (간접 참조)

포인터의 크기는 현재 프로그램이 몇 비트 기반 인지에 따라 달라진다.

**포인터 연산

포인터가 현재 참조하는 주소에서 다른 공간의 주소를 가리키게 됨

int *p = &tmp;

p += 3; 포인터 연산을 3번 만큼

연속적인 메모리 공간에 할당 된 값들을 포인터 연산을 통해 빠르게 이동

**const와 포인터

int Data=10;

const int *ptr=&Data;    읽기 전용 포인터(참조하는 공간의 값을 초기화 값인 상태로 읽기만 실행)

int* const ptr2=&Data;   상수 포인터(오로지 하나의 주소만 참조 가능)

const int* const ptr3=&Data  읽기 전용 상수 포인터(참조하는 공간의 값 변경 x 참조하는 공간 변경 x)

**이중 포인터

int Data=10;

int* ptr1 = &Data;  Data의 주소를 추출하여 ptr1에 저장

int** ptr2 = ptr1; 포인터 ptr1의 주소를 추출하여 ptr2에 저장(이중 포인터)