[c] 2차원 배열

소양·2022년 1월 11일
0

c

목록 보기
2/3
post-thumbnail

배열의 집합, 2차원 배열

2차원 배열이란 쉽게 생각해서 '배열의 집합'이라 볼 수 있다.

✔ 2차원 배열의 선언

datatype 배열이름[행 수][열 수];

datatype 배열이름[행 수][열 수] = {
	{,, ...},
    {,, ...},
    ...
};

2차원 배열은 행, 열을 포함한다.

✔ 인덱스

배열을 만든 후, "인덱스"라고 불리는 행, 열의 위치를 지정해 배열 요소에 접근할 수 있다.

// 배열 요소 값 수정
배열이름[행 인덱스][열 인덱스] =;

// 배열 값 출력
printf("%d", 배열이름[행 인덱스][열 인덱스]);

📌 행의 개수를 지정하지 않는 2차원 배열 선언

int score[][3] = {    
    { 30, 20, 45 },
    { 80, 85, 95 },
    { 100, 70, 90 },
    { 50, 70, 60 }
};

위의 예시는 행의 개수를 따로 지정해주지 않는다. 1차원 배열에서 배열의 크기를 따로 선언해주지 않고 자동으로 배열 크기를 정했던 것과 같이 2차원 배열에서도 행의 개수를 자동으로 지정할 수 있다.

열의 개수는 필수!

✔ 2차원 배열의 크기

python, Java 등에서는 len(), length()를 통해 배열의 크기를 구할 수 있다.
C언어는 조금 더 복잡하다.

int main(void)
{
    int arr[4][3];
    int row_len, col_len;
    
    col_len = sizeof(arr[0]) / sizeof(arr[0][0]);
    row_len = sizeof(arr) / sizeof(arr[0]);
    
    printf("배열: %d행, %d열", row_len, col_len);
    
    return 0;
}

열 (col_len)
col_len을 구하는 식을 보면 sizeof(arr[0]), 즉 한 행의 메모리 크기를 sizeof(arr[0][0]) 한 열에서 사용되는 메모리 크기로 나누어 계산한다.

행 (row_len)
행(총 몇 행인지)은 전체 배열의 크기를 한 행의 크기로 나누어 계산할 수 있다.

👉 output

배열: 4행, 3열

정리

✔ 2차원 배열: 여러 배열의 집합
✔ 인덱스: 배열 요소 접근
✔ sizeof(): 행, 열 크기 계산

profile
쭈구리석사 🍀

0개의 댓글