C 기본 문법 – 배열 – 1 – 다차원 배열

C 기본 문법 – 배열 – 1편: 다차원 배열 완전 정복

안녕하세요, 여러분! 😊
이제 C 언어의 배열 개념이 조금씩 익숙해지셨죠?
지난 시간에는 1차원 배열을 배웠다면,
이번에는 그 한 발짝 더 나아가 다차원 배열, 특히 2차원 배열을 중심으로 배워보겠습니다!

🧠 다차원 배열은 마치 행과 열이 있는 표, 혹은 엑셀 시트와 같아요.
숫자들이 줄줄이 나열된 1차원 배열과 달리, 행렬 형식으로 데이터를 표현할 수 있답니다!

이제부터 다차원 배열의 선언, 초기화, 접근 방법, 반복문 활용법
실전에서 정말 많이 쓰이는 내용을 꼼꼼하게 알려드릴게요 💪


다차원 배열이란?

  • 2차원 배열은 **행(row)과 열(column)**을 가진 데이터 표!
  • 3차원 이상도 가능하지만, 대부분은 2차원까지만 자주 사용됩니다.
  • 메모리상에서는 1차원처럼 연속으로 저장되지만, 표처럼 다룰 수 있음이 핵심입니다.

1. 2차원 배열 선언 방법

자료형 배열이름[행의 개수][열의 개수];

예시:

int matrix[3][4];

🎯 3행 4열의 정수 배열, 즉 총 12개의 정수 공간이 생성됩니다!


2. 2차원 배열 초기화

(1) 직접 지정 초기화

int matrix[2][3] = {
    {1, 2, 3},
    {4, 5, 6}
};

행별로 중괄호를 써서 명확하게 초기화 가능해요!

(2) 한 줄로 초기화

int matrix[2][3] = {1, 2, 3, 4, 5, 6};

행/열 순서대로 쭉 채워집니다.

(3) 일부만 초기화

int matrix[2][3] = {1, 2};

나머지는 자동으로 0으로 채워져요!


3. 배열 요소 접근 방법

matrix[0][0] = 10;
matrix[1][2] = 30;

[행][열] 순서로 접근합니다!

예시 출력

printf("%d
", matrix[1][2]);  // 30 출력

4. 2차원 배열과 중첩 반복문

2차원 배열은 2중 for문과 찰떡궁합이에요!

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        printf("matrix[%d][%d] = %d
", i, j, matrix[i][j]);
    }
}

🎯 i는 , j는 을 의미해요!


5. 2차원 배열 예제: 성적표

int scores[2][3] = {
    {85, 90, 95},  // 1번 학생
    {70, 80, 90}   // 2번 학생
};

for (int i = 0; i < 2; i++) {
    int sum = 0;
    for (int j = 0; j < 3; j++) {
        sum += scores[i][j];
    }
    float avg = sum / 3.0;
    printf("%d번 학생 평균: %.2f
", i + 1, avg);
}

💡 학생별 점수 평균을 계산하는 실제적인 예제예요!


6. 배열 초기값 없이 값 입력받기

int data[2][2];

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 2; j++) {
        printf("[%d][%d]번째 값 입력: ", i, j);
        scanf("%d", &data[i][j]);
    }
}

✨ 사용자로부터 값 입력받아 배열을 채울 수도 있어요!


7. 다차원 문자 배열

문자열 여러 개를 저장할 때도 2차원 배열을 써요!

char fruits[3][10] = {"apple", "banana", "grape"};

for (int i = 0; i < 3; i++) {
    printf("%s
", fruits[i]);
}

fruits3개의 문자열(최대 9글자+널문자) 저장 가능


8. 3차원 배열 맛보기

int cube[2][3][4];
  • 2개의 면
  • 각 면은 3행 4열

📌 게임 좌표, RGB 이미지 데이터 등에서 사용될 수 있어요.


✅ 다차원 배열 요약 정리

항목 설명
선언 방법 자료형 배열[행][열];
접근 방법 [행인덱스][열인덱스]
초기화 { {a, b}, {c, d} } 또는 {a, b, c, d}
반복 처리 이중 for문으로 순회
실전 활용 표, 행렬, 게임맵, 성적표 등

⚠️ 다차원 배열 사용 시 주의할 점

주의사항 설명
인덱스 순서 헷갈림 주의 [행][열] 순서, 반대로 쓰면 오류 발생 가능
범위 초과 접근 주의 matrix[3][4]인데 matrix[3][4]는 오류!
초기화 시 중괄호 잘 쓰기 {}를 제대로 사용하지 않으면 의도치 않은 값 배치 가능
메모리 사용량 주의 행렬 크기 커지면 메모리 부족 발생 가능

마무리하며 💬

오늘은 C 언어에서 표 형태의 데이터 처리에 필수적인 2차원 배열을 배워봤습니다!
1차원 배열만으로는 부족한 정보 표현을
2차원, 나아가 다차원 배열로 더 정돈되고 효율적으로 할 수 있죠 😊

🎯 행과 열이 있는 데이터? 무조건 2차원 배열을 떠올려보세요!

다음 시간에는 배열과 관련된 문자열 처리
배열과 함수의 관계 등에 대해서도 더 알아볼 수 있어요!

오늘도 끝까지 함께해 주셔서 감사합니다 🙌
코딩은 차곡차곡 쌓아가며 배우는 여정이에요 💻✨

답글 남기기