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; |
'Development > C, C++' 카테고리의 다른 글
이름 공간(NameSpace), 네임스페이스 형식 (0) | 2018.05.10 |
---|---|
접근 지정자 - public, private, protected (0) | 2018.05.09 |
포인터 연산자 (0) | 2018.05.09 |
레지스터 변수(Register Variable) (0) | 2018.05.08 |
Error-'Launching xxxxxx.exe' has encountered a problem. Program file does not exist (0) | 2018.05.08 |