// education

1차원 및 다차원 배열 (Array)

**배열(Array)**은 동일한 자료형의 변수 여러 개를 연속된 메모리 공간에 순서대로 나열하여 관리하는 집합 자료구조입니다.


1. 1차원 배열의 선언과 인덱스(Index)

int scores[5] = {90, 85, 100, 95, 80};

2. 배열 순회 예시 코드

#include <stdio.h>

int main(void) {
    int num[5] = {10, 20, 30, 40, 50};
    int sum = 0;

    for (int i = 0; i < 5; i++) {
        sum += num[i];
    }

    printf("총합: %d, 평균: %.1f\n", sum, (double)sum / 5);
    return 0;
}

3. 2차원 배열 (Multidimensional Array)

바둑판이나 표(Table)처럼 행과 열 형태로 데이터를 관리할 때 사용합니다.

// 3행 4열 2차원 배열
int matrix[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

4. 자주 묻는 질문 (Q&A)

Q. 배열의 인덱스 범위를 벗어나 접근하면(scores[10]) 어떻게 되나요? A. C 언어는 배열의 경계 검사(Boundary Check)를 하지 않습니다. 인덱스 범위를 넘어선 메모리 영역을 건드리면 알 수 없는 쓰레기 값이 나오거나 프로그램이 비정상 종료(Segmentation Fault)될 수 있습니다.

← 이전변수의 범주와 기억 부류 (지역, 전역, 정적 변수) 다음 →포인터(Pointer)의 개념과 메모리 주소