배열의 개념에 대해 알아보고, 배열의 정의와 선언 형태, 배열과 기억공간의 표현에 대해 알아본다.
학습 목표
배열을 선언하고 초기화.
배열의 요소를 참조.
배열과 기억공간의 표현을 이해.
char형 배열을 이해.
주요 용어
배열 : 동일한 자료형으 ㅣ값들이 순서적으로 하나의 이름(배열명)에 모여있는 것으로, 같은 이름을 갖는 하나 이상의 변수 리스트.
1차원 배열 : 배열의 첨자가 하나만 있는 배열.
2차원 배열 : 배열의 첨자가 2개인 배열.
3차원 배열 : 배열의 첨자가 3개인 배열.
char형 배열 : 문자열을 처리하기 위해 사용되는 배열.
배열의 개념
n개의 자료를 처리하기 위해, n개의 변수를 만들고 모든 변수 이름을 기억하고 자료를 처리하기는 복잡함. -> 일관성 있고 효율적인 새료운 변수릐 필요
하나의 변수 이름에 순서에 의한 번호 부여.
변수명[0], 변수명[2], ...
효율적인 자료 처리 가능.
배열의 정의와 형태
배열의 정의.
동일한 자료형을 갖는 자료들의 리스트.
배열의 각 요소는 하나의 변수로 취급.
배열은 배열명과 첨자로 구분.
배열 선언 형태.
1차원 배열.
2차원 배열.
3차원 배열.
1차원 배열
배열의 첨자가 하나만 있는 배열.
첨자의 개수는 배열 전체의 구성요소의 개수를 의미.
배열의 각 요소는 배열명과 첨자로 구분.
첨자는 0 부터 시작.
배열의 각 요소는 배열명과 첨자로 구분.
자료형과 기억 클래스는 갖는다.
선언
형식 : 자료형 배열명 [개수]
사용 예 : int a [10]
의미 : 1차원 배열로서, 배열명은 a, 크기는 10, 정수 값이 기억됨.
1차원 배열의 기억 공간 표현
1차원 배열의 기억 공간 표현
1차원 배열의 초기화
배열을 선언하면 기억공간을 초기화 해야 함.
초기화 방법.
배열선언 후 초기값 할당.
int arr[4]; // -> 반드시 배열의 크기를 지정해야 함.
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
배열선언과 동시에 초기값 할당.
int arr[4] = {10, 20, 30, 40}; // -> 배열의 각 요소에 초기 값 할당.
int arr[] = {10, 20, 30, 40}; // -> 배열의 크기 생량 가능.
int arr[4] = {10, 20, 30,}; // -> arr[3] = 0으로 초기화.
int arr[4] = {10, , 30, 40}; // -> 에러 발생.
int arr[4] = {10, 20, 30, 40, 50}; // -> 에러
외부로부터 자료를 입력받아 초기화.
int x[10];
for( i = 0; i < 10; i++ ) {
scanf("%d", &x[i]);
}
1차원 배열의 초기화 후 기억공간의 표현 int arr[5] = {10, 20, 30, 40, 50};
1차원 배열의 초기화 후 기억공간의 표현
EX 1
#include <stdio.h>
int main()
{
// 배열 선언과 초기화
int arr1[4] = {10, 20, 30, 40};
int arr2[] = {10, 20, 30, 40};
int arr3[4] = {10, 20};
int arr4[4] = {0};
int i;
printf("\narr1 ->\n\t");
for (i = 0; i <= 3; i++)
{
printf("[%d] : %d\t", i, arr1[i]);
}
printf("\narr2 ->\n\t");
for (i = 0; i <= 3; i++)
{
printf("[%d] : %d\t", i, arr2[i]);
}
printf("\narr3 ->\n\t");
for (i = 0; i <= 3; i++)
{
printf("[%d] : %d\t", i, arr3[i]);
}
printf("\narr4 ->\n\t");
for (i = 0; i <= 3; i++)
{
printf("[%d] : %d\t", i, arr4[i]);
}
printf("\n");
return 0;
}
EX 2
#include <stdio.h>
int main()
{
// 1차원 배열 선언과 초기화
static int x[] = {1, 2, 3, 4};
static int y[] = {10, 20, 30, 40};
int i, z[4];
for (i = 0; i < 4; ++i)
z[i] = x[i] + y[3 - i];
printf("SUM OF OTHER SIDE OF EACH ARRAY\n");
for (i = 0; i < 4; ++i)
printf("%d + %d = %d\n", x[i], y[3 - i], z[i]);
return 0;
}
2차원 배열 선언
형식 : 자료형 배열명[행의 수][열의 수]
사용 예 : int a[3][4];
의미 : 2차원 배열로, 배열 명은 a이고, 3행 4열로 됨 12개의 요소를 가진 정수형 배열.