[C언어] 8. 배열
배열
배열은 여러 변수를 메모리의 연속적인 공간에 저장하는 데이터 타입입니다
메모리의 연속적으로 저장하는 방식이라, 이후 포인터
개념을 공부할 때 포인터
와 헷갈릴 수 있습니다.
다양한 데이터를 저장하기 위한 용도로 주로 활용됩니다.
선언
배열의 선언은변수의 선언과 크게 다르지 않습니다.
배열의 길이를 지정하지 않으면 선언이 되지 않습니다.
int arr[10];
초기화
int array[3] = {1, 2, 3};
중괄호 {}
를 활용하여 배열을 초기화 할 수 있습니다.
int array[] = {1, 2, 3, 4};
초기화 과정에서, 길이를 지정하지 않고 초기화를 하는 경우, 자동으로 길이가 정해집니다.
int arr[10] = {1, 2, 3, 4, 5};
길이가 지정된 상태에서 초기화를 진행할때, 해당 순번 배열을 초기화 하지 않는다면, 자동으로 0
으로 초기화 됩니다.
int array[10] = {0};
모두 0으로 초기화 하기 위해선 중괄호에 0을 입력하여 초기화 할 수 있습니다.
활용
int array[] = {1, 2, 3, 5};
for (int i = 0 ; i < 4; i++) {
printf("%d\n", array[i]);
}
배열을 활용하는 방법은 변수활용하는 방식과 거의 동일합니다.
배열에 인덱스를 넣어 해당 순번 데이터로 접근할 수 있습니다.
이러한 특성 때문에, 반복문에서 효율적으로 활용할 수 있습니다.
인덱스는 0부터 시작됩니다.
데이터의 접근을 위한 숫자를 인덱스
라고 합니다.
이 인덱스
는 0부터 시작되어, 배열의 길이 - 1
까지 사용할 수 있습니다.
갯수와 인덱스는 다른 개념으로 생각을 해두시면 편할 것 같습니다.
만약 인덱스가 지정된 값을 초과하면, 에러가 발생하니 주의해야 합니다.
2차원 배열
int array[3][3];
int arr[][] = {{1, 2, 3}, {1, 2, 3}};
배열 내부 데이터를 배열로 활용하는 방식입니다.
정말 많은 데이터를 활용할 수 있어 2차원 데이터를 다루기 편합니다.
int array[3][3] = {{1, 2, 3}, {1, 2, 3}};
printf("%d\n", array[0][1]);
사용방식도 일반 배열과 크게 다르지 않습니다.
배열 내부에 배열이 있다는 개념을 이해하시면 쉽게 이해할 수 있을 것 같습니다.
2차원 배열의 활용
int map[5][5] = {
{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}
};
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
printf("%d "map[i][j]);
}
printf("\n");
}
2차원 배열에 저장된 데이터를 2차원 방식으로 출력하는 예제입니다.
💡 지적 환영합니다
Comments