포인터랑 일반 변수와는 달리 메모리 주소를 저장하는 변수를 말한다.
일반적으로 변수는 특정 값을 저장하는데 반해 포인터는 특정 메모리 주소를 저장하며 저장한 메모리 주소에 저장되어 있는 값을 읽어 올 수 있다.
특정 메모리 주소를 저장하고, 주소에 저장된 값을 읽어 올 수 있다는 특징 때문에 포인터는 많은 상황에서 아주 유용하게 사용할 수 있다.
메모리상에 연속적으로 저장되어 있는 배열을 조작할 때에도 포인터를 이용하면 편리하다.
또한 포인터는 저장하는 값의 성질에 따라 크기가 변하는 일반 변수와는 달리 포인터 변수는 타입에 관계없이 항상 4바이트를 유지한다.
크키가 100kb가 넘는 구조체, 클래스를 가리키는 포인터라 할지라도 포인터 자체 크기는 항상 4바이트이다.
그렇기 때문에 함수의 인수로 넘기는 과정에서 일반변수, 구조체, 포인터를 쓰는 것 보다 포인터를 쓰는 것이 더욱 효과적이다.
만약 크기가 큰 구조체 배열을 함수의 인수로 넘겨야 한다고 하자. 그러면 프로그램은 그 함수가 한번 실행될 때 마다 크기만큼 연산속도가 느려질 것이다.
'Windows Developer > C' 카테고리의 다른 글
[C] main(int argc, char *argv[])에서 포인터를 쓰는 이유? (0) | 2010.08.01 |
---|---|
[C] 재귀함수 (0) | 2010.07.20 |
[C] 동적 메모리 (0) | 2010.07.20 |
[C] call by value와 call by reference (0) | 2010.07.17 |