본문/내용
1. C 언어의 포인터와 배열의 차이점을 설명하세요.
포인터와 배열은 모두 C 언어에서 메모리 주소와 관련된 개념이지만 차이점이 있습니다. 배열은 동일한 자료형의 연속된 메모리 공간을 의미하며, 선언 시 크기를 지정하고 초기화 가능합니다. 예를 들어, int arr[10];는 10개의 int형 데이터를 저장할 수 있는 연속된 공간을 확보합니다. 반면 포인터는 변수로서 다른 변수나 메모리 주소를 저장하는 역할을 합니다. 예를 들어, int ptr;는 정수형 포인터 변수로서 특정 메모리 주소를 가리킬 수 있습니다. 배열 이름은 상수 포인터로서 배열 전체의 시작 주소를 가리키지만 포인터는 여러 주소를 자유롭게 변경할 수 있습니다. 배열은 선언 후 크기를 변경할 수 없고, 포인터는 동적 메모리 할당을 통해 크기를 조절할 수 있기 때문에 효율적입니다. 구체적으로 배열은 선언 시 컴파일 타임에 크기 결정이 필요하여 유연성이 떨어지지만, 포인터는 런타임에 할당 가능하여 유연성을 높입니다. 예를 들어, malloc함수를 통해 동적 배열을 만들 때 포인터를 사용하는 것이 일반적입니다. 이러한 차이로 인해 배열은 선언된 크기 내에서만 사용 가능하고, 포인터는 메모…