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

배열과 포인터는 C 언어에서 밀접한 관계를 갖고 있습니다. 이 둘은 서로 연관되어 있지만, 다른 방식으로 데이터에 접근하고 조작할 수 있습니다.

배열

배열은 동일한 데이터 형식의 항목들이 연속적으로 저장된 자료구조입니다. 예를 들어, int 형식을 가지는 5개의 원소로 이루어진 배열은 다음과 같이 선언할 수 있습니다.

int numbers[5] = {1, 2, 3, 4, 5};

위에서 numbers는 5개의 int 형식을 저장할 수 있는 공간을 의미하며, 각 인덱스를 통해 해당 항목에 접근할 수 있습니다.

포인터

포인터는 메모리 주소를 저장하는 변수로, 다른 변수의 메모리 주소를 갖고 있습니다. & 연산자를 사용하여 변수의 주소를 얻을 수 있으며, 포인터 변수를 선언할 때에는 * 기호를 사용합니다.

int *ptr;
int num = 10;
ptr = # // ptr은 num의 주소를 가리킴

배열과 포인터

배열은 포인터 상수로 취급되며, 배열의 이름은 해당 배열의 첫 번째 원소를 가리키는 포인터로 해석됩니다. 따라서 배열과 포인터 사이의 관계는 매우 밀접합니다.

예를 들어, 다음 두 문장은 동일한 의미를 갖습니다.

int arr[5];
int *ptr = arr;

결론

배열과 포인터는 C 프로그래밍에서 중요한 개념이며, 둘 간의 관계를 이해하는 것은 프로그래밍 능력 향상에 도움이 될 것입니다.