[c언어] 포인터와 배열의 포인터

프로그래밍에서 포인터는 변수의 메모리 주소를 저장하는 데 사용됩니다. c언어에서 포인터를 사용하면 변수의 메모리 위치에 직접 접근할 수 있습니다. 또한, 배열의 포인터를 사용하면 배열을 간접적으로 참조할 수 있습니다.

포인터

포인터는 다른 변수의 메모리 주소를 저장하는 변수입니다. 이를 통해 메모리를 효율적으로 활용할 수 있습니다. 포인터를 선언하려면 변수 이름 앞에 별표(*)를 붙입니다.

int *ptr;  // 정수형 포인터 선언

위의 예제에서 ptrint 형식의 변수를 가리키는 포인터입니다.

배열의 포인터

배열의 포인터는 배열의 첫 번째 요소를 가리키는 포인터입니다. 배열의 이름은 해당 배열의 첫 번째 요소에 대한 포인터로 해석됩니다.

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;  // 배열의 포인터 선언

ptrarr의 첫 번째 요소를 가리키는 포인터입니다. 이제 ptr을 통해 배열을 참조할 수 있습니다.

포인터 산술

포인터는 덧셈, 뺄셈과 같은 산술 연산을 수행할 수 있습니다. 예를 들어, ptr + 1은 다음 배열 요소를 가리킵니다.

int *ptr = &arr[0];  // 배열의 첫 번째 요소를 가리키는 포인터

ptr++;  // 다음 배열 요소를 가리킴

여기에서 ptr에 1을 더해주면, arr 배열의 두 번째 요소를 가리키게 됩니다.

포인터와 배열의 포인터는 효율적인 메모리 관리와 배열 요소에 대한 간접 참조를 가능하게 합니다.

이상으로 c언어에서 포인터와 배열의 포인터에 대한 간단한 소개를 마치겠습니다.


참고 문헌: