c - 포인터의 이해
- 포인터의 선언
*** 포인터 변수임을 알리는 '*'는 뒤에 따르는 포인터 변수가 가르키는
메모리 공간속의 실질적인 값이다.
*** '&'는 뒤에 따르는 변수의 주소값을 나타낸다.
데이터형 *변수이름;
ex) int *temp;
기본적인 사용 예)
int *temp; // 정수형의 temp 포인터 변수의 선언.
int a = 10; // 정수형의 변수 a에 10의 값을 대입.
temp = &a; // 'a'의 주소값을 temp에 대입.
printf("%d", *temp) // *temp의 값을 출력한다.
-> 추리순서 1) temp의 값에는 a의 물리적인 주소값이 입력된다.
2) temp는 a의 물리적인 주소값을 가지고 있다.
3) '*'는 실질적인 값을 나타낸다.
4) temp는 a의 주소값을 가지는데, '*temp'라고 하면
temp의 주소값이 가지는 실질적인 값이 된다.
결국, '*temp'는 'a'와 동일한 값을 가진다.
**주의할 점
포인터 변수인 temp의 데이터 형은 실제로 포인터 변수가 가리키게 될 대상인
a의 데이터 형과 일치해야 한다!
**포인터의 기본개념
데이터가 있는 메모리 주소를 기억하고 있다가, 필요할 때 참조하겠다는 의미.
**포인터의 사용이유
대상의 메모리 주소를 참고하여, 물리적인 메모리에 직접 접근함으로 인해,
처리 속도를 향상시킬 수 있다.