C언어 : 배열

지환·2022년 1월 3일
0

C언어

목록 보기
12/37
post-thumbnail

배열이란?

  • 학생 20명의 국어 성적을 저장하려면 자료형에 상관없이 변수를 20개 선언해야 한다.
  • 똑같은 자료형으로 많은 수의 변수를 선언하고 사용할 떄는 나열식 표현에 한계가 있다.
  • 그래서 c언어는 데이터를 그룹으로 묶어서 표현하는 배열(Array)문법을 사용한다.

배열 선언하고 사용하기

  • short student[20];은 2바이트 정수형 데이터 20개를 저장할 수 있는 배열을 student라는 이름으로 선언한다는 뜻이다.
  • 배열을 선언하는 방법은 변수를 선언하는 방법과 비슷하다. 다만 대괄호를 사용해서 저장 공간을 몇 개 만들 것인지 명시하는 것만 다르다.

  • 여기에서 student는 short형 변수 20개를 선언한 것과 같다. 2바이트이므로 student 변수는 총 40바이트 크기로 만들어진다.

배열의 특정 요소에 값 대입하기.

  • 배열에 값을 저장하려면 [] 기호를 사용하여 특정 요소의 위치를 명시해야된다.
  • 예를 들어 배열의 두 번째 항목에 10을 넣고 싶다면 오른쪽 같이 대입 명령문을 써주면 된다.

    이와 같다.

코드로 표현한 <배열의 특정 요소에 값 대입하기>

int main()
{
	short student[20];
	student[1] = 10;
	printf("%d\n", student[1]);

}

배열 요소에 for문으로 값 대입하기.

  • 배열을 선언할 떄는 [] 안에 꼭 상수를 써주어야 한다. 그러나 특정 요소에 값을 대입할 때는 [] 안에 변수를 사용할 수 있다.
  • 앞에서 4행의 short student[20]; 처럼 배열 선언할 때 사용한 []는 배열의 크기를 결정하기 떄문에 꼭 상수를 써주어야 하지만, 6행의 안에는 배열의 특정 요소를 선택하는 것이기 때문에 상수뿐만 아니라 변수도 사용할 수 있다.
int index = 1;
student[index] = 10;
  • 예를 들어 배열로 선언한 student 변수의 0번에서 4번 요소에 모두 5를 넣고 싶다면 오른쪽과 같이 코드를 구성할 수 있다.
  • 다음과 같이 요소에 변수를 사용하고 반복문으로 코드를 구성하면 프로그래밍이 더 편해진다.
short student[20], i;
for(i=0; i<5; i++) student[i] = 5;

배열 초기화하기

  • 배열은 지역 변수를 그룹으로 묶은 것이기 떄문에 배열 문법으로 선언한 변수도 지역 변수처럼 자동으로 초기화되지 않는다.

  • 배열의 각 요소에 일정한 값을 대입하여 초기화해야된다.

int main()
{
	short student[20], i;
	for (i = 0; i < 20; i++) student[i] = 0;
	student[1] = 10;
	printf("%d %d\n", student[1], student[2]);
}

결과 값으로 10하고 0이 나온다.

쉼표를 사용한 배열 초기화 문법

  • 배열로 선언한 변수도 일반 변수처럼 초기화하는 방법이 있다.
  • 일반 변수의 초기화와 차이가 있다면 배열은 {}로 묶어 초깃값들을 저장한다.
short student[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0}; //0이 20개 있다고 가정
  • 이렇게 초기화하는 방법은 난잡해지고 배열의 요소가 많아지면 부담스러워진다.
short student [20] = {0,}; 위와 같은 의미다.

<배열 초기화 문법으로 배열의 모든 요소를 0으로 초기화하기>

#include <stdio.h>

void main()
{
  short student[20] = {0.}; //반복문 대신 쉼표 사용
  student[1] = 10;
  printf("%d %d \n", student[1],student[2]);
}

배열의 요소 값 사용하기

  • 배열에 저장된 요소 값을 읽어오거나 요소 값끼리 연산할 수도 있다.
short data[3];
data[0] = 2;
data[1] = data[0] + 5;
data[2] = data[0] + data[1];
  • 배열의 각 요소에 저장된 값 합하기
#include <stdio.h>

int main()
{
	char data[5] = { 1, 2, 3, 4, 5 };
	int result = 0, i;
	for (i = 0; i < 5; i++)
	{
		result = result + data[i];
	}
	printf("data 배열의 각 요소의 합은 %d이다.\n", result);
}
	

<결과>

  • 이번 시간엔 배열의 기본적인 정의 및 배열과 for문을 알아봤다.
  • 다음 시간엔 배열과 관련된 문자열을 알아보겠다.
profile
아는만큼보인다.

0개의 댓글