[C언어 강좌] 제 4강 배열
목 차
안녕하세요.
오늘은 저번 주에 변수와 상수에 이어서 배열에 대해 알아보도록 하겠습니다.
배열이란??
int형 변수 10개를 선언은 다음과 같이 할 수 있습니다.
int nNum1, nNum2, nNum3, nNum5, nNum6, nNum7, nNum8, nNum9, nNum10;
100개나 1000개를 선언하려면 하나씩 적기도 너무 번거롭고 관리도 어렵습니다.
이때 사용할 수 있는 게 배열입니다.
배열을 사용하게 되면 여러 개의 데이터를 수월하게 관리할 수 있게 됩니다.
형식
다음과 같이 초기화 하면서 배열 초기값을 넣을 수 있습니다.
데이터형 변수명[크기] = {배열1초기값, 배열2초기값, 배열3초기값...}; |
다른 방법으로 다음과 같이 초기화한 후 배열 값을 대입할 수도 있습니다.
데이터형 변수명[크기]; 변수명[0] = 배열값; 변수명[1] = 배열 값; |
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <stdio.h>
void main()
{
int arrNum[10];
arrNum[0] = 1;
arrNum[1] = 2;
arrNum[2] = 3;
arrNum[3] = 4;
arrNum[4] = 5;
arrNum[5] = 6;
arrNum[6] = 7;
arrNum[7] = 8;
arrNum[8] = 9;
arrNum[9] = 10;
printf("arrNum[0] : %d\n", arrNum[0]);
printf("arrNum[1] : %d\n", arrNum[1]);
printf("arrNum[2] : %d\n", arrNum[2]);
printf("arrNum[3] : %d\n", arrNum[3]);
printf("arrNum[4] : %d\n", arrNum[4]);
printf("arrNum[5] : %d\n", arrNum[5]);
printf("arrNum[6] : %d\n", arrNum[6]);
printf("arrNum[7] : %d\n", arrNum[7]);
printf("arrNum[8] : %d\n", arrNum[8]);
printf("arrNum[9] : %d\n", arrNum[9]);
}
|
cs |

배열을 선언에 준 후 배열 값 0~9로 접근합니다.
그리고 배열을 "int arrNum[10];"으로 선언하면 메모리상에 연속으로 할당이 되게 됩니다.
다차원 배열
행, 열을 가진 데이터를 배열에 넣기 위해서는 다차원 배열을 이용할 수 있습니다.
예를 들면 학생들의 영어, 수학, 과학 성적을 배열에 넣는 경우에는 2차원 배열을 사용해서 넣을 수 있습니다.
형식
데이터형 변수명[행개수][열개수] = {배열1초기값, 배열2초기값, 배열3초기값...}; |
데이터형 변수명[행 개수][열개수];[행개수][열개수]; 변수명[0][0] = 배열 값; 변수명[0][1] =배열 값; 변수명[1][0] = 배열 값; 변수명[1][1] = 배열 값; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <stdio.h>
void main()
{
int arrNum[2][5];
arrNum[0][0] = 1;
arrNum[0][1] = 2;
arrNum[0][2] = 3;
arrNum[0][3] = 4;
arrNum[0][4] = 5;
arrNum[1][0] = 6;
arrNum[1][1] = 7;
arrNum[1][2] = 8;
arrNum[1][3] = 9;
arrNum[1][4] = 10;
printf("arrNum[0][0] : %d\n", arrNum[0][0]);
printf("arrNum[0][1] : %d\n", arrNum[0][1]);
printf("arrNum[0][2] : %d\n", arrNum[0][2]);
printf("arrNum[0][3] : %d\n", arrNum[0][3]);
printf("arrNum[0][4] : %d\n", arrNum[0][4]);
printf("arrNum[1][0] : %d\n", arrNum[1][0]);
printf("arrNum[1][1] : %d\n", arrNum[1][1]);
printf("arrNum[1][2] : %d\n", arrNum[1][2]);
printf("arrNum[1][3] : %d\n", arrNum[1][3]);
printf("arrNum[1][4] : %d\n", arrNum[1][4]);
}
|
cs |
"int arrNum[2][5];"은 메모리상에는 다음과 같이 할당됩니다.