본문 바로가기
IT 기술/C언어

C언어 배열(array) part1_17일차

by 썬's 2023. 2. 22.

안녕하세요 보글리아입니다.

저번 시간부로 제어문을 마무리했습니다.

이번 시간에는 새로운 개념인 배열을 배워보도록 하겠습니다.

※제 수업은 이전주차에서 배운 개념을 재차 설명드리지 않습니다※

※본 수업에 들어가기 앞서 요약을 하고 세부설명으로 넘어가겠습니다※

 


요약

  • 배열 : 동일한 데이터를 그룹으로 묶어 표현하는 문법
  • 배열에 원하는 저장 공간은 대괄호 안에 숫자로 적어준다.
  • 각 배열 요소에는 값을 대입할 수 있다.

배열 정의

C언어에서 배열은 프로그래머들이 가장 애용하는 문법 중 하나입니다. 배열은 특정 데이터형을 그룹으로 묶어 표현하는 방식입니다. 변수를 50개 선언한다고 했을 때, 이 변수의 데이터형이 모두 int라면, int형으로 50개의 변수를 묶어 나타낼 수 있습니다.

 

예를 들어 학교 내 한 반이 있다고 했을 때, 이 반에는 총 30명의 학생들이 있습니다. 이 학생들을 하나의 반으로 묶어 놓은  형태를 배열과 비슷하게 보시면 됩니다.

 

C언어에서 배열 사용법은 다음과 같습니다.

자료(데이터)형 변수명 [배열 요소] = {배열 요소의 값 대입} 

 

기존 방식으로 먼저 보겠습니다. 만약 int 자료(데이터)형으로 변수를 7개 선언하고 각각 값을 대입하려면, 일일이 하나씩 변수를 선언하고 값을 대입했어야 합니다. 이 과정에서 코드 길이는 총 7개고 변수 하나하나씩에 값을 7번 넣어야 하기 때문에 비효율적이고 귀찮습니다.

 

지금은 변수를 7개 선언하고 값을 대입하기 때문에 그럭저럭 작업을 할 수 있습니다.

하지만, 변수를 100개, 500개 선언하고 그 변수마다 일일이 값을 대입하려면...많이 힘들겠죠?? ㅎㅎ

이렇듯 똑같은 자료형으로 많은 변수를 선언할 때 나열식으로 작성하면 한계가 있습니다.

그래서 C언어에서는 동일한 자료형으로 그룹을 묶어 표현하는 배열을 제공합니다.

#include <stdio.h>


int main()
{
	// 기존 방식
	int num1 = 5;
	int num2 = 7;
	int num3 = 9;
	int num4 = 10;
	int num5 = 12;
	int num6 = -5;
	int num7 = 100;

	return 0;
}

 

이번에는 배열을 사용해 값을 대입해 보겠습니다. 어떠신가요?? 훨씬 코드가 보기 편해진게 보이실까요??

int num[7]은 int형을 저장할 수 있는 num이라는 변수를 선언한다는 말입니다. 그리고 대괄호 안에 7은 총 7개의 저장 공간을 만들어 각각에 값을 대입한다는 의미입니다. 그렇기에 대괄호를 사용해 저장 공간을 몇 개 만들지 명시해야 합니다.

#include <stdio.h>

int main()
{
	// 배열 사용
	int num[7] = { 5, 7, 9, 10, 12, -5, 100 };

	return 0;
}

 

하단 이미지를 보시면, 배열은 그룹으로 묶인 데이터를 하나의 변수로 관리합니다.

여기에서 num 변수는 총 7개의 공간을 가지고 있고 개별 요소마다 인덱스를 가지고 있습니다.

인덱스는 쉽게 말해 저장 공간으로 1이 아닌 0부터 시작해 1씩 증가합니다. 저희는 배열 공간을 7로 설정했기 때문에 0번부터 6번 인덱스까지 각 인덱스에 값을 하나씩 넣을 수 있습니다.

따라서 num 배열의 첫 번째 공간은 num[0]입니다.

배열(array)
배열(array)


 

배열의 요소 값 설정

자 이제 배열을 만들어 원하는 만큼의 저장 공간을 만들었다면, 이제 각 배열 요소에 값을 대입해보겠습니다. 배열에 값을 저장하려면 특정 요소의 위치를 정확히 명시해 줘야 합니다. 예를 들어 2번 인덱스에 있는 배열에 값을 저장하려면, -변수명-[2] 이런식으로 몇 번 인덱스인지 작성해야 합니다.

 

배열을 선언하고 각 배열의 저장 공간에 값을 대입하는 방법은 크게 두 가지가 있습니다.

첫 번째 방법은 배열을 먼전 선언한 후 각 배열 요소에 값을 대입하는 방법입니다. 그리고 두 번째 방법으로는 배열 선언과 동시에 중괄호로 값을 대입하는 방법이 있습니다. 두 번째 방법은 순차적으로 0번 인덱스부터 값이 들어갑니다.

 

배열 요소에 값을 대입하실 때 주의하실 점은 배열의 데이터 형에 맞는 값을 대입하셔야 합니다.

예를 들어 내가 int형으로 a라는 배열을 만들고 저장 공간을 9개로 잡았으면, 모든 공간에 int 자료형에 맞는 데이터형인 정수값을 대입하셔야 합니다.

 

출력해보면 정상적으로 배열 요소에 맞는 값이 출력되는 것을 보실 수 있습니다.

#include <stdio.h>

int main()
{
	// 배열의 특정 요소에 값 대입
	// 첫 번째 방법
	int num[7];
	num[0] = 5;
	num[1] = 7;
	num[2] = 12;
	num[3] = -2;
	num[4] = -6;
	num[5] = 100;
	num[6] = 12;

	// 두 번째 방법
	float sum[3] = { 3.12, -2.5, 7.6 };

	// 배열 요소 값 출력
	printf("num[5] 번째 값 : %d \n", num[5]);
	printf("sum[1] 번째 값 : %f \n", sum[1]);

	return 0;
}

출력 결과
출력 결과


오늘은 배열이란 무엇이고 배열을 선언하는 방법과 배열 요소에 값을 대입하는 법을 배웠습니다.

이번 시간에는 배열 요소에 값을 대입했으니 다음 시간에는 배열의 문자열을 대입하는 법을 알아보겠습니다.

긴 글 읽으시느라 너무 고생많으셨습니다~~

댓글