[c언어] 포인터와 다차원 배열

포인터는 C 언어에서 매우 강력한 도구로 사용됩니다. 포인터를 사용하여 메모리 주소를 직접 조작하고, 배열을 다루거나 동적 메모리 할당을 할 수 있습니다. 이번 글에서는 포인터다차원 배열의 관계에 대해 알아보겠습니다.

포인터와 배열

배열 이름은 해당 배열의 첫 번째 요소의 주소를 나타내는 포인터 상수(constant pointer)로 간주됩니다. 배열 이름을 포인터로 사용하여 배열 요소에 접근할 수 있습니다. 예를 들어, 다음과 같이 선언된 배열에서 포인터를 사용하여 배열의 요소에 접근할 수 있습니다.

int arr[3] = {1, 2, 3};
int *ptr = arr; // arr을 포인터로 사용

printf("%d", *ptr); // 첫 번째 요소에 접근
printf("%d", *(ptr+1)); // 두 번째 요소에 접근

포인터와 다차원 배열

다차원 배열은 포인터의 배열로 해석될 수 있습니다. 예를 들어, 2차원 배열은 포인터의 포인터로 해석할 수 있습니다. 다음은 2차원 배열과 해당 배열을 가리키는 포인터를 선언하는 예제입니다.


int arr2D[2][3] = {{1, 2, 3}, {4, 5, 6}};
int (*ptr)[3] = arr2D; // 2차원 배열을 가리키는 포인터 선언

printf("%d", *(*(ptr+1)+2)); // 두 번째 행의 세 번째 요소에 접근

정리

포인터와 다차원 배열은 C 언어에서 중요한 개념이며, 이해하고 활용함으로써 효과적인 프로그래밍을 할 수 있습니다. 포인터를 사용하여 배열에 접근하고, 다차원 배열을 포인터로 해석하는 방법을 숙지하는 것이 중요합니다.

이상으로 포인터와 다차원 배열의 기본적인 개념과 관련된 내용을 살펴보았습니다. 추가적인 내용은 C 언어 관련 문서를 참고하시기 바랍니다.

References