포인터(Pointer), 역참조(Dereferencing), '포인터' 사용시 장점, 포인터 변수의 크기

CODEDRAGON Development/C, C++

반응형

 

 

 

 

포인터(Pointer)

·       메모리의 주소가 저장된 공간 포인터라고 합니다.

·       데이터를 저장하있는 공간의 주소를 갖고 있는 메모리 공간입니다.

·       메모리의 주소값을 저장하는 변수를 포인터 변수라고 합니다.

·       포인터 변수의 선언은 '*' 변수 앞에 붙여서 선언합니다.

·       포인터 변수에는 주소만 저장할 있습니다. , int 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장하는 사용됩니다.

·       포인터 변수의 크기는 자료형(정수형, 실수형, 문자형) 관계없이 무조건 4byte 입니다.

·       C언어의 장점 중에 하나가 바로 포인터(포인터 변수)입니다. 메모리의 접근이 가능하게 줍니다. 포인터를 이용해서 메모리 주소를 이동할 수 있습니다.

·       가변 문자열 길이를 저장할 때는 배열보다 포인터가 유용합니다.

·       포인터는 어셈블리어, C, C++, 파스칼 하위 레벨까지 제어할 있는 언어에서 주로 많이 쓰이며, 모듈라-2, 에이다, C#에서는 극히 제한적으로 사용되고, 자바, 에펠 등에서는 완전히 숨겨져 사용할 없습니다.

·       데이터의 주소값은 해당 데이터가 저장된 메모리의 시작 주소를 의미합니다.

 

 

 

 

역참조(Dereferencing)

포인터(Pointer) 프로그래밍 언어에서 다른 변수, 혹은 변수의 메모리 공간주소를 가리키는 변수를 말하며 포인터가 가리키는 값을 가져오는 것을 역참조(Dereferencing)라고 합니다.

 

 

 

 

'포인터' 사용시 장점

·       메모리 주소를 참조해서 다양한 자료형 변수들의 접근과 조작 용이합니다.

·       메모리 주소를 참조하여 배열과 같은 연속된 데이터에 접근과 조작 용이합니다.

·       동적 할당된 메모리 영역(힙영역) 접근과 조작 용이합니다.

·       포인터를 메모리의 임의의 주소를 가리키도록 있으며 포인터 연산도 가능합니다.

·       일반적으로 포인터는 메모리 주소로 바꿀 있습니다. 또한 포인터는 다른 변수나 함수를 가리키도록 사용됩니다.

 

 

 

 

포인터 변수의 크기

·       자료형에 상관없이 무조건 4byte 입니다.

·       포인터 변수 p 정수, 문자, 실수 자체가 저장되는 것이 아닌 주소값이 저장되기 때문입니다.

 

int* p;
char* p;
float* p;
double* p;