카테고리 없음
포인터의 개념
코드베어
2020. 3. 31. 18:01
데이터가 저장된 메모리의 시작주소를 주소값이라 하고 이를 가리키는 것을 포인터라고 한다.
int n = 1;
int* pn = &n;
포인터는 아래 주소 연산자(&)와 참조 연산자(*)로 사용할 수 있다.
- 주소 연산자(&) : 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다.
- 참조 연산자(*) : 포인터의 이름이나 주소 앞에 사용하여, 포인터가 가리키는 주소에 저장된 값을 반환한다.
문자열이나 배열에서 사용되는 변수명은 시작주소를 가리키는 포인터이다.
char sz[100] = {"string"}; // sz는 문자열 "string"의 시작주소
int nArray[20]; // nArray는 배열의 시작주소
포인터 변수는 메모리에서 변수의 위치를 나타내는 주소를 다루는 변수이므로, 그 크기는 일반적으로 CPU에 따라 결정된다. 보통 32비트 CPU에서는 4byte, 64비트 CPU에서는 8byte의 크기를 갖는다.
포인터는 코드의 복잡성을 높일 수 있지만, 메모리에 직접 접근하여 다루기 때문에 프로그램의 성능을 최적화 하는데 이점이 있다.