포인터
포인터란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부른다.
char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장한다.
포인터 변수의 선언은 아래와 같이 선언한다.

1) 주소연산자(&)
주소 연산자는 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다.
2) 참조 연산자(*)
참조 연산자는 포인터의 이름이나 주소 앞에 사용하여, 포인터에 가리키는 주소에 저장된 값을 반환한다.
그냥 *p는 선언할 때를 제외하고 무조건 값을 가리킨다고 생각하면 되고 &는 주소를 가리킨다고 생각하면 된다.
- 예시

b는 a의 주소 값이 b라는 변수에 대입된 것이고
c는 a의 주소 값을 가리킬 수 있게 된 것이다.
즉, a와 b는 연결고리가 없는 반면 a와 c는 연결고리가 있다.
배열과 포인터

- 중요 포인트
1. 배열 a의 주소값은 a[0]의 주소값과 같다
2. *(p)는 p의 해당하는 주소값의 배열의 값을 말한다.

- 중요 포인트
1. 선위연산, 후위연산을 잘 보자

- 중요 포인트
1. 선위연산, 후위연산을 잘 보자
2차원 배열과 포인터

- 중요 포인트
1. 2차원 배열에서 각 행의 대표값은 각 행 첫번째 자리의 주소값이다
2. 2차원 배열의 대표값은 첫 a[0][0]의 주소값이다
그러므로 a를 출력하면 a배열의 대표 주소값인 100이 출력되고
a의 값(a)은 a 배열의 첫 행의 대표값을 출력하며
a의 값(**a)은 a의 대표값의 값인 a[0][0]의 값 1이 출력된다

- 중요 포인트
1. 최초 p의 값은 103
2. x는 p의 값이기 떄문에 103이 가리키고 있는 5가 x가 되며
3. y는 p+2의 값이기 때문에 103+2=105가 가리키고 있는 9가 y가 됨

- 중요 포인트
1. *darr는 darr 배열의 값이기 때문에 darr[0]의 대표값
포인터 배열
- 배열의 요소가 포인터(메모리주소)로 이루어진 것




- 중요 포인트
1. int *b[]는 포인터 배열이기 때문에 a[0]과 a[1]의 주소값을 원소로 가지는 배열이다 -> {100, 103}
2. 전위연산, 후위연산에 유의한다. ++p를 해서 변한 p 값에 --p를 하는 것을 잊지 말자
- 출력에 \n이 없기 때문에 옆으로 이어 붙여서 출력해야 한다.
