배열은 간단하게 말해서 일종의 집합을 의미한다. 지금까지는 변수 하나에는 하나의 값 밖에 담지 못했지만, 배열을 이용하면 하나의 변수에 여러 개의 값을 넣을 수 있다.
int main()
{
int arr[5] = {1, 33 , 47, 102, 155};
return 0;
}
위와 같이 변수 이름 뒤에 대괄호를 이용하여 배열을 초기화 시킬 수 있다.
배열의 크기를 먼저 지정해주고, 동시에 값 또한 초기화
자료형 배열이름[크기(요소의 개수)] = {값1, 값2, 값3, ...}
각각의 값(요소)들에 접근하려면 요소의 위치를 알아야한다. 요소의 위치는 인덱스(index)로 알 수 있다. 인덱스는 0부터 시작하기 때문에 배열에서 가장 첫 번째 값의 인덱스는 0이 된다.
배열이름[인덱스]
#include <stdio.h>
int main()
{
int arr[5] = {1, 33 , 47, 102, 155};
printf("arr 배열의 첫 번째(=인덱스가 0) 값 : %d\n", arr[0]);
printf("arr 배열의 두 번째(=인덱스가 1) 값 : %d\n", arr[1]);
printf("arr 배열의 세 번째(=인덱스가 2) 값 : %d\n", arr[2]);
printf("arr 배열의 네 번째(=인덱스가 3) 값 : %d\n", arr[3]);
printf("arr 배열의 다섯 번째(=인덱스가 4) 값 : %d\n", arr[4]);
return 0;
}
위에서는 선언과 동시에 값을 초기화하였지만, 그 이외에도 몇 가지 존재한다.
int main()
{
int arr1[5] = {1, 33 , 47, 102, 155}; // 선언과 동시에 초기화
int arr2[5] = {5}; // 0 번째 값을 5 로 초기화하고 나머지는 모두 0 으로 초기화
int arr3[5] = {5, 10}; // 0 번째 값을 5, 1 번째 값을 10으로 초기화하고 나머지는 모두 0 으로 초기화
int arr4[5] = {}; // 모두 0 으로 초기화
int arr5[5]; // 초기화 하지 않음
int arr6[] = {11, 22 , 33, 44}; // 배열의 크기가 4로 정해지면서 자동으로 초기화
return 0;
}
바로 위에서 배열을 출력할 때, printf를 5번이나 사용했지만, for문을 사용한다면 상당히 간략하게 표현이 가능하다.
#include <stdio.h>
int main()
{
int arr[5] = {1, 33 , 47, 102, 155}; // 선언과 동시에 초기화
for(int i=0; i<5; i++)
{
printf("arr 배열의 인덱스 %d 의 값 : %d\n", i, arr[i]);
}
return 0;
}
arr 배열의 인덱스 0 의 값 : 1
arr 배열의 인덱스 1 의 값 : 33
arr 배열의 인덱스 2 의 값 : 47
arr 배열의 인덱스 3 의 값 : 102
arr 배열의 인덱스 4 의 값 : 155