🌿 개념
- 실제적인 데이터 값, literal(x) 어떤 데이터가 저장된 기억공간의 주소/번지(o)가 저장되어있는 변수 → 프로그래머가 기억공간을 변수명(x) 주소(o)로 직접 접근하기 위해 사용 → 기억공간의 효율적 이용을 가능하게 함
- 기억공간의 주소 = 포인터 값 → 포인터 = 변수의 주소 값을 갖는 특별한 변수
출처: https://prepinsta.com/all-about-c-language/pointers/
🌿 선언
int *p; // 의미 = 변수 p는 정수형의 자료를 갖는 변수의 주소를 가지는 포인터 변수
- 위와 같이 포인터 변수가 선언되면 2개의 자료가 준비됨
p
= 포인터 변수, 정수형 자료가 수록되어 있는 주소를 가지고 있음
*p
= 해당 주소에 수록되어 있는 정수형 자료를 갖고 있음
- 포인터 변수를 선언한 후 사용하기 위해서 사용되는 포인터 연산자
&
= 주소 연산자 = 일반 변수명 앞에 붙임, 모든 변수에 대한 주소값을 구하는 연산자 → 포인터 변수에 해당 변수의 주소값을 대입/치환
*
= 내용 연산자 = 포인터 변수명 앞에 붙임, 포인터 변수가 가리키는 주소의 자료/내용을 구하는 연산자
🌿 참조(reference)
포인터 변수를 참조한다
= 포인터 변수가 가리키는 내용을 읽어내거나 값을 대입