C언어 배열 선언 및 출력 방법 정리
배열의 이해와 활용
C언어에서 배열은 동일한 데이터 유형의 여러 값을 저장하기 위한 연속된 메모리 공간을 제공합니다. 배열은 인덱스를 통해 각각의 요소에 쉽게 접근할 수 있는 구조로 되어 있으며, 이를 통해 데이터의 처리와 조작을 간편하게 수행할 수 있습니다.

배열 선언하기
배열을 선언할 때는 자료형과 배열의 이름, 그리고 크기를 정의해야 합니다. 기본적인 배열 선언 문법은 다음과 같이 표현합니다:
자료형 배열이름[크기];
예를 들어, 5개의 정수형 데이터를 저장할 수 있는 배열을 선언하려면 다음과 같은 코드를 사용합니다:
int arr[5];
배열의 크기는 필수로 명시해야 하며, 배열의 크기를 생략할 수 있는 경우는 값을 초기화할 때만 가능합니다.
배열 초기화하기
배열을 선언하면서 동시에 초기화를 수행할 수 있습니다. 이때 중괄호를 사용하여 값을 나열합니다. 예를 들어, 다음과 같은 방식으로 배열을 초기화할 수 있습니다:
int arr[5] = {1, 2, 3, 4, 5};
여기서 주의할 점은 배열의 초기화 값의 개수가 배열의 크기보다 많으면 오류가 발생하고, 그에 따라 프로그램이 비정상적으로 동작할 수 있습니다.

배열 요소에 접근하기
배열의 각 요소에 접근하기 위해서는 인덱스를 사용합니다. 인덱스는 0부터 시작하여 배열의 크기보다 작아야 합니다. 예를 들어, 위의 배열에서 두 번째 요소에 접근하려면 다음과 같이 작성합니다:
int value = arr[1]; // value에는 2가 저장됩니다.
이처럼 배열을 통해 특정 값을 쉽게 참조할 수 있습니다.
배열의 메모리 구조
배열은 메모리에 연속적으로 저장됩니다. 예를 들어, 정수형 배열은 각 요소가 4바이트를 차지하므로, 전체 배열의 메모리 공간은 요소의 크기와 개수의 곱으로 계산할 수 있습니다. 다음은 배열의 메모리 배치 예시입니다:
int arr[5] = {1, 2, 3, 4, 5}; // 메모리 주소 0x00, 0x04, 0x08, 0x0C, 0x10
따라서 메모리 주소는 요소의 크기만큼 증가하며, 이러한 구조로 인해 배열의 요소들을 효율적으로 접근할 수 있습니다.
배열을 포인터로 다루기
배열 이름은 배열의 첫 번째 요소의 주소를 가리키는 포인터와 같습니다. 이를 통해 배열을 포인터 연산을 통해 접근할 수 있습니다. 예를 들어, 다음과 같이 배열을 포인터 형태로 선언하고 사용할 수 있습니다:
int *ptr = arr; // arr은 &arr[0]와 같은 주소를 가리킴
이제 ptr을 사용하여 배열의 요소에 접근할 수 있으며, 다음과 같은 방식으로 출력할 수 있습니다:
printf("%d", *(ptr + 1)); // 두 번째 요소의 값 출력
배열의 크기 및 메모리 관리
배열의 크기를 확인하기 위해서는 sizeof 연산자를 사용할 수 있습니다. 이는 배열이 메모리에 차지하는 크기를 바이트 단위로 반환합니다. 배열의 크기를 계산하는 방법은 다음과 같습니다:
int size = sizeof(arr) / sizeof(arr[0]); // 배열의 크기를 계산
이렇게 계산된 크기를 이용해서 반복문을 사용하여 모든 요소에 접근하고 출력할 수 있습니다. 예를 들어:
for (int i = 0; i < size; i++) { printf("%d ", arr[i]); }

배열의 특성과 사용 시 유의사항
배열은 데이터를 효율적으로 관리하는 데 유용하지만, 몇 가지 주의할 점이 있습니다. 배열의 크기는 고정적이므로 언제 어디서든 크기를 변경할 수 없습니다. 또한, 배열의 요소에 직접 접근할 때는 항상 인덱스 범위를 초과하지 않도록 주의해야 합니다. 인덱스를 초과하면 예기치 못한 동작이나 프로그램 충돌을 유발할 수 있습니다.
결론
C 언어에서 배열은 동일한 데이터 타입의 여러 값을 효율적으로 저장하고 처리할 수 있는 강력한 도구입니다. 배열을 이해하고 활용하는 것은 프로그래밍의 기본이며, 이를 통해 더욱 복잡한 자료 구조와 알고리즘을 구현할 수 있습니다. 배열과 포인터의 관계를 이해하는 것은 효율적인 메모리 관리와 효과적인 프로그래밍을 위해 필수적입니다. 여러분도 배열의 특성과 다양한 활용 방안을 익혀, 효과적인 프로그래밍을 할 수 있기를 바랍니다.
자주 찾는 질문 Q&A
C언어에서 배열이란 무엇인가요?
C언어의 배열은 동일한 타입의 여러 데이터를 연속적으로 저장할 수 있는 메모리 블록입니다. 이 구조를 통해 각 요소를 쉽게 접근하고 조작할 수 있습니다.
배열을 어떻게 선언하나요?
배열을 선언할 때는 자료형, 배열 이름, 그리고 크기를 정의해야 합니다. 예를 들어, 정수형 배열을 선언하려면 'int arr[크기];'와 같은 형식으로 작성합니다.
배열을 초기화하는 방법은?
배열 초기화는 선언과 동시에 가능합니다. 중괄호를 사용하여 원하는 값을 나열하면 됩니다. 예를 들어, 'int arr[5] = {1, 2, 3, 4, 5};'와 같이 작성할 수 있습니다.
배열 요소에 어떻게 접근하나요?
각 배열 요소는 인덱스를 통해 접근할 수 있습니다. 배열은 0부터 시작하므로, 두 번째 요소에 접근하려면 'arr[1]'과 같은 형태로 사용합니다.
배열의 크기를 어떻게 확인하나요?
배열의 크기는 'sizeof' 연산자를 통해 확인할 수 있습니다. 예를 들어, 'sizeof(arr) / sizeof(arr[0]);'를 사용하여 배열 내 요소의 개수를 계산할 수 있습니다.