반응형

안녕하세요.

오늘은 저번 주에 변수와 상수에 이어서 배열에 대해 알아보도록 하겠습니다.

 

배열이란??

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];"은 메모리상에는 다음과 같이 할당됩니다.

 

반응형

+ Recent posts