포인터 변수란? 변수의 주소를 저장하는 변수.
*--- 간접 참조 연산자 기호 : 포인터 변수에 들어있는 주소 내의 값을 가져옴
&--- 주소 연산자 기호 : 변수의 주소 접근 가능
위의 선언 내용을 파악해보면 a라는 변수의 값은 10이고 주소는 100이다. b는 *를 통해 선언된 포인터 변수다.
&를 사용해서 a의 주소 100을 담을 수 있다.
위의 예시에서 array는 배열 시작 주소값을 담고 있다.
위의 예시에서 *p를 통해 포인터 변수를 선언하고 이를 array와 등호로 같게 만든 후 사용할 수 있음을 알 수 있다.
그리고 p[~] 형식으로 array의 인자에 접근가능함을 알 수 있다. ( 포인터 변수를 배열의 형식으로 사용 가능 )
덧셈 뺄셈 연산자를 사용할 수 있다.
++, -- 라든지 +1, -1, +2, -2 등등
++이나 --를 하면 포인터 변수의 자료형의 단위 크기만큼 주소를 이동할 수 있다.
+2 혹은 -2는 단위 크기의 2배를 더하거나 혹은 빼는 것을 의미한다.
(*ptr++) // ptr이 담고 있는 변수 주소 안의 값을 ++
*(ptr++) // ptr이 담고 있는 변수 주소를 우선 ++하고 그 안의 값을 참조
첫번째 printf, 두번째 printf를 비교했을 때 각각 4byte, 8byte, 1byte씩 증가한 주소값이 출력됨을 확인할 수 있다.
prinf 사용시 자료형 크기 설정시 참고할 수 있는 표다.