[c언어] 포인터와 배열의 길이

프로그래밍을 하면서 포인터배열은 매우 중요한 요소입니다. C 언어에서는 포인터와 배열을 자주 사용하는데, 그 둘 사이의 차이를 이해하는 것이 중요합니다. 특히 포인터와 배열의 길이를 이해하는 것은 프로그램을 작성할 때 혼란을 피하는 데 도움이 됩니다.

포인터

포인터는 다른 변수의 메모리 주소를 저장하는 변수입니다. 이를 통해 메모리의 특정 위치에 직접 접근할 수 있습니다.

int num = 5;
int* ptr = #  // 포인터 ptr은 num 변수의 메모리 주소를 가리킴

배열

배열은 동일한 데이터 형식을 가지는 여러 변수의 집합입니다. 배열을 사용하면 관련된 데이터를 그룹화하여 처리할 수 있습니다.

int arr[5];  // int 형식의 5개 요소를 가진 배열

배열의 길이

배열을 선언할 때 크기를 명시하며, 이 크기는 고정되어 있습니다. 배열의 길이를 변경하려면 새로운 배열을 만들고 데이터를 복사해야 합니다.

int arr[5];  // 5개의 int 형식 요소를 가진 배열

포인터와 배열의 길이

포인터와 배열은 서로 다르지만, 배열의 이름은 배열의 첫 번째 요소를 가리키는 포인터로 해석됩니다. 이때 배열 이름으로는 배열의 길이를 확인할 수 없습니다.

int arr[5];  // 배열 이름 arr은 첫 번째 요소를 가리키는 포인터
int* ptr = arr;  // 배열 arr의 첫 번째 요소를 가리키는 포인터

배열의 길이 확인

배열의 길이를 확인하려면 따로 변수에 길이를 저장해야 합니다. C 언어에서는 sizeof 연산자를 사용하여 배열의 총 바이트 수를 얻을 수 있습니다.

int arr[5];
int length = sizeof(arr) / sizeof(arr[0]);

포인터와 배열의 길이를 이해하면, 프로그램을 더 효율적으로 작성할 수 있고 메모리를 효율적으로 활용할 수 있습니다.

결론

배열과 포인터는 C언어 프로그래밍에서 매우 중요한 개념입니다. 배열의 길이를 확인하거나 포인터를 사용하여 메모리를 효율적으로 관리할 수 있습니다.