728x90
이차원 배열과 가변 배열
이차원 배열과 가변 배열은 둘 다 행과 열로 구성이 된다.
둘의 차이점이라면, 이차원 배열은 모든 행의 길이가 같고, 가변 배열은 행마다 길이가 다르게 구성이 가능하다는 것이다.
예를 들자면
0 1 2 3
4 5 6 7
8 9 10 11
이건 모든 행의 길이가 같으므로 이차원 배열이고,
1 2
3 4 5
6 7 8 9
이건 행마다 길이가 다르므로 가변 배열이다.
이차원 배열은 [,]로 선언을 한다.
int[,] matrix = new int[3, 4]; // 3x4 이차원 배열 생성
// 배열 요소 넣기
for (int row = 0; row < 3; row++) {
for (int col = 0; col < 4; col++) {
matrix[row, col] = row * 4 + col;
}
}
// 배열 요소 출력
for (int row = 0; row < 3; row++) {
for (int col = 0; col < 4; col++) {
Console.Write(matrix[row, col] + " ");
}
Console.WriteLine();
}
가변 배열은 [][]로 선언한다.
int[][] jaggedArray = new int[3][]; // 3개의 행으로 이루어진 가변 배열 생성
// 각 행마다 배열 요소 넣기
jaggedArray[0] = new int[] { 1, 2 };
jaggedArray[1] = new int[] { 3, 4, 5 };
jaggedArray[2] = new int[] { 6, 7, 8, 9 };
// 배열 요소 출력
for (int row = 0; row < 3; row++) {
for (int col = 0; col < jaggedArray[row].Length; col++) {
Console.Write(jaggedArray[row][col] + " ");
}
Console.WriteLine();
}
만약 가변 배열의 행 길이를 고정시키면 문법 오류가 발생한다.
int[][] jaggedArray = new int[3][4]; // 컴파일 에러
728x90
'🖥️ > C#' 카테고리의 다른 글
[C#] 인덱서 (0) | 2023.08.21 |
---|---|
[C#] Collection (0) | 2023.08.21 |
[C#] 배열 다루기 (0) | 2023.08.21 |
[이것이 C#이다] Chapter09: 연습문제 (0) | 2023.08.20 |
[C#] 레코드와 프로퍼티 (0) | 2023.08.18 |