[c++] 배열과 포인터의 관계 설명
배열과 포인터는 C++ 프로그래밍에서 밀접한 관련이 있습니다. 배열은 연속된 메모리 공간에 할당된 동일한 데이터 유형의 요소를 저장하는 데 사용되며, 포인터는 메모리 주소를 저장하는 변수입니다. 이 두 가지는 종종 함께 사용되어 배열 요소에 액세스하고 조작하는 데 유용합니다.
배열과 포인터의 관계
-
배열의 이름은 해당 배열의 첫 번째 요소의 주소를 나타냅니다. 즉, 배열명은 해당 배열의 포인터 역할을 합니다.
int arr[5] = {1, 2, 3, 4, 5}; int *ptr = arr; // arr은 arr[0]의 주소와 동일합니다.
-
배열 요소에 접근하는 데에는 포인터 산술 연산을 사용할 수 있습니다.
int thirdElement = *(arr + 2); // arr[2]와 동일
-
포인터를 사용하여 배열을 함수에 전달할 수 있습니다.
void processArray(int *arr, int size) { for (int i = 0; i < size; ++i) { // do something with arr[i] } } int main() { int arr[5] = {1, 2, 3, 4, 5}; processArray(arr, 5); // 배열의 이름을 함수에 전달 return 0; }
결론
배열과 포인터는 상호작용이 가능하며, 배열명은 배열의 첫 번째 요소의 주소를 의미하므로 포인터로 간주됩니다. 이를 통해 배열 요소에 쉽게 접근하고, 함수에 배열을 전달하거나 동적으로 메모리를 할당할 수 있습니다.
참고자료: GeeksforGeeks - Arrays and Pointers in C/C++