[c++] 배열과 포인터의 관계 설명

배열과 포인터는 C++ 프로그래밍에서 밀접한 관련이 있습니다. 배열은 연속된 메모리 공간에 할당된 동일한 데이터 유형의 요소를 저장하는 데 사용되며, 포인터는 메모리 주소를 저장하는 변수입니다. 이 두 가지는 종종 함께 사용되어 배열 요소에 액세스하고 조작하는 데 유용합니다.

배열과 포인터의 관계

  1. 배열의 이름은 해당 배열의 첫 번째 요소의 주소를 나타냅니다. 즉, 배열명은 해당 배열의 포인터 역할을 합니다.

     int arr[5] = {1, 2, 3, 4, 5};
     int *ptr = arr; // arr은 arr[0]의 주소와 동일합니다.
    
  2. 배열 요소에 접근하는 데에는 포인터 산술 연산을 사용할 수 있습니다.

     int thirdElement = *(arr + 2); // arr[2]와 동일
    
  3. 포인터를 사용하여 배열을 함수에 전달할 수 있습니다.

     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++