수업 목표

  • 배열이 무엇인지에 대해 배워본다.
  • 배열의 응용에 대해서도 알아본다.

배열의 필요성

지금까지 배운 내용으로만 대선 개표 프로그램을 만든다고 가정해봅시다.

어떤 사람이 어떤 후보를 뽑았는지 저장하는 것이 가장 중요합니다.

저장하기 위해서 5천만개의 변수를 아래와 같이 선언합니다.

ex) int Vote1, Vote2, Vote3, … 그러나 이번에 배울 배열을 사용한다면 아주 손쉽게 5천만개의 그릇을 만들 수 있습니다. ex) int Vote[50000000]; 그리고는 scanf() 함수와 반복문으로 투표 시작합니다.

 

배열(Array)

자료구조 중 가장 기초가 되는 자료구조. 사용할 메모리 크기를 고정해서 선언하는 것이 특징입니다.

선언된 후에는 절대 그 크기를 변경 불가합니다. 그래서 정적인 자료구조라고도 합니다.

선언된 메모리는 연속적으로 할당됩니다.

 

배열 호텔

배열을 호텔에 비유해봅시다. 단, 이 호텔에는 규칙이 있습니다.

  1. 사용할 객실 개수를 객실 사용전에 예약해야만 합니다. 예약된 개수는 변경 불가능합니다.
  2. 연속된 객실로 배정 받게됩니다.
  3. 객실의 번호는 0번부터 시작합니다. 객실의 번호를 index라고 부릅니다.
// 선언 방법
자료형 배열명[배열크기];

// 선언과 동시에 초기화 방법
자료형 배열명[배열크기] = { 값0, 값1, ..., 값(배열크기-1) };
// 자료형 호텔명[객실개수] = { 사람0, 사람1, ..., 사람(객실개수-1) };

 

Ex050101) 배열 1 [중요 샘플 코드]

다음의 소스코드를 “천천히 읽기”로 출력 결과를 예측해봅시다. 예측 결과와 실행 결과와 비교해봅시다.

// Main.c

#include <stdio.h>

int main(void)
{
	int i;
	int Array[4] = { 1, 2, 3, 4 };

	for (i = 0; i < 4; ++i)
	{
		printf("%d ", Array[i]);
	}

	return 0;
}

 

배열 관련 고찰

배열의 index는 항상 0부터 시작합니다. 한국인이라면, 건물도 1층부터 시작하기에 자연수가 익숙합니다. 0부터하면 익숙하지 않습니다. 다만 배열의 크기를 1 크게 잡는다면 1부터 시작해도 되긴합니다만, 앞으로 대부분의 소스코드들은 0부터 시작하기 때문에 익숙해질 필요가 있습니다.

int arr[11]; // 이렇게 잡아야 index 1 ~ 10까지 사용가능.
int i;

for (i = 1; i <= 10; ++i)

 

 

Ex050102) 배열 2

다음의 소스코드와 입력1을 참고하여 “천천히 읽기”로 출력1을 예측해봅시다. 예측 결과와 실행 결과와 비교해봅시다.

 

//입력1
1 3 2 4
//출력1
// Main.c

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	int i, Answer;
	int Array[4] = { 0, };

	for (i = 0; i < 4; ++i)
	{
		scanf("%d", &Answer);
		Array[i] = Answer;
	}

	for (i = 0; i < 4; ++i)
	{
		printf("%d ", Array[i]);
	}

	return 0;
}

'C언어 공부 > C언어 강의' 카테고리의 다른 글

챕터 6-1 : 함수 개론  (0) 2026.03.06
챕터 5-2 : 2차원 배열  (0) 2026.03.06
챕터 8-2 : 동적할당과 메모리 소유권 문제  (0) 2026.03.03
챕터 1-11 : 입력 기초 (1)  (0) 2026.02.24
챕터 1-10 : ASCII (1)  (0) 2026.02.24

+ Recent posts