본문 바로가기
IT/c언어

C 언어 포인터와 배열의 관계

by 뉴코딩맨 2023. 7. 12.
C 언어에서 포인터와 배열은 밀접한 관계를 가지고 있습니다. 실제로 배열은 포인터의 한 형태로 볼 수 있습니다. 배열의 이름은 해당 배열의 첫 번째 요소를 가리키는 포인터로 해석됩니다. 이러한 관계로 인해 포인터와 배열 간에 많은 유사성이 있으며, 두 개념은 상호 교환이 가능합니다.

 

 

배열의 포인터 특성

배열은 메모리 상에 연속적으로 저장된 요소의 집합입니다. 배열의 이름은 첫 번째 요소의 주소를 가리키는 포인터로 해석되며, 이를 통해 배열의 요소에 접근할 수 있습니다. 예를 들어, int arr[5];와 같이 정수형 배열을 선언하면 arr은 첫 번째 요소의 주소를 가리키는 포인터로 해석됩니다.
 

포인터와 배열의 차이점

포인터와 배열은 유사한 동작을 수행하지만 몇 가지 중요한 차이점이 있습니다. 가장 큰 차이점은 포인터는 임의의 주소를 가리킬 수 있지만, 배열은 고정된 크기를 가지며 해당 크기를 초과하는 요소에 접근할 수 없다는 것입니다. 또한, 포인터는 주소 연산과 간접 참조 연산을 수행할 수 있지만, 배열은 주소 연산만 수행할 수 있습니다.
 

포인터와 배열의 관계 이해하기

아래의 예제를 통해 포인터와 배열의 관계를 이해해보겠습니다.
 
#include <stdio.h>

int main() {
   int arr[5] = {1, 2, 3, 4, 5};
   int *ptr = arr; // 배열의 첫 번째 요소의 주소를 가리키는 포인터

   printf("첫 번째 요소: %d\n", *ptr); // 배열의 첫 번째 요소 출력
   printf("세 번째 요소: %d\n", *(ptr + 2)); // 배열의 세 번째 요소 출력
   printf("두 번째 요소: %d\n", ptr[1]); // 배열의 두 번째 요소 출력
   
   return 0;
}

 

 

위의 예제에서 arr은 배열의 이름으로서 첫 번째 요소의 주소를 가리키는 포인터로 해석됩니다. ptr은 arr의 값을 할당받은 포인터입니다. 포인터를 사용하여 배열의 요소에 접근하고 값을 출력할 수 있습니다. 예를 들어, *ptr은 배열의 첫 번째 요소를 가리키고, *(ptr + 2)는 배열의 세 번째 요소를 가리킵니다. 또한, ptr[1]은 배열의 두 번째 요소를 가리킵니다.
 

결론

포인터와 배열은 C 언어에서 밀접한 관계를 가지고 있습니다. 배열은 포인터의 한 형태로 해석될 수 있으며, 배열의 이름은 첫 번째 요소를 가리키는 포인터로 해석됩니다. 포인터를 사용하여 배열의 요소에 접근하고 조작할 수 있습니다. 이러한 이해는 C 언어에서 데이터 구조를 효율적으로 다루는 데 도움을 줄 수 있습니다.

 

 

C 언어 포인터(Pointers)

포인터는 C 언어에서 매우 중요한 개념 중 하나입니다. 포인터는 메모리 주소를 저장하는 변수로, 다른 변수의 메모리 위치를 가리킵니다. 포인터를 사용하여 메모리의 효율적인 사용과 데이터

newcodingman.tistory.com

 

'IT > c언어' 카테고리의 다른 글

C 언어 포인터 상수  (0) 2023.07.12
C 언어 포인터 산술 연산  (0) 2023.07.12
C 언어 포인터(Pointers)  (0) 2023.07.12
C 언어 널 문자 (Null Character)  (0) 2023.07.12
C 언어 배열 (Array)  (0) 2023.07.12

댓글