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

프로그래밍에서 배열과 포인터는 중요한 데이터 구조입니다. 배열과 포인터는 메모리 주소와 관련이 있으며, 이를 통해 데이터를 효율적으로 관리할 수 있습니다. 이번 글에서는 배열과 포인터의 주소에 대해 알아보겠습니다.

배열의 주소

배열은 연속적인 메모리 공간에 할당되며, 각 요소는 인덱스를 통해 접근됩니다. 이때 배열 이름은 배열의 첫 번째 요소의 주소를 나타냅니다. 예를 들어, int arr[5]가 선언되었다면, arrarr[0]의 주소를 가리킵니다.

int arr[5] = {1, 2, 3, 4, 5};
printf("%p\n", &arr);    // 배열의 시작 주소
printf("%p\n", &arr[0]); // 첫 번째 요소의 주소

포인터와 배열

포인터는 변수의 주소를 저장하는 변수입니다. 포인터를 사용하면 배열의 요소에 간접적으로 접근할 수 있습니다. 배열의 이름은 배열의 시작 주소를 가리키므로, 포인터에 배열의 이름을 할당하면 배열의 주소를 저장할 수 있습니다.

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;

printf("%p\n", ptr);     // 배열의 시작 주소
printf("%p\n", ptr + 1); // 두 번째 요소의 주소

결론

배열과 포인터는 메모리 주소와 밀접한 관련이 있으며, 포인터를 통해 배열의 주소를 효율적으로 다룰 수 있습니다. 배열의 주소와 포인터를 잘 활용하여 메모리를 효율적으로 관리하고 데이터에 접근하는 방법을 익혀두는 것이 중요합니다.

배열과 포인터의 주소에 대한 내용을 정리해보았습니다. 이 내용이 도움이 되었으면 좋겠네요. 감사합니다!

참고 자료