포인터의 개념
포인터(Pointer)는 직역하면 ‘가리키는 것’이라는 뜻으로 ‘주소(Address)를 저장한 변수’를 의미한다.
포인터와 관련된 연산자는 두 가지가 있는데, 첫째가 & 연산자이고, 두번째가 * 연산자이다. 먼저 & 연산자는 변수의 주소를 구할 때 쓴다. 예를 들어 &i라고 하면 변수 i의 주소값을 구한다. 다음으로 * 연산자는 주소값을 가리킬 때 쓴다. 예를 들어 포인터 변수 p에 &i를 대입하면, *p는 변수 i를 가리키게 된다.
좀 더 자세히 설명하자면 다음과 같다.
첫째, *p를 출력하면 변수 i를 출력하게 된다.
둘째, p를 출력하면 변수 i의 주소값을 출력하게 된다.
셋째, *p에 무언가를 대입하면 변수 i에 대입된다.
넷째, p에 변수의 주소값(&j, &k, …)을 대입할 수 있다.