C# 배열의 인덱스는 0부터 시작합니다
네, C#에서 배열은 0부터 인덱싱(zero-based indexing)됩니다. 즉, 배열의 첫 번째 요소는 인덱스 0에 위치하고, 마지막 요소는 '배열 길이 - 1' 인덱스에 위치합니다.
인덱스와 배열 길이의 관계를 단계별로 살펴보면 다음과 같습니다.
- 배열이 비어 있으면 요소가 0개이며, 길이도 0입니다.
- 배열에 0번 인덱스에 하나의 요소만 있다면 길이는 1입니다.
- 배열에 0번과 1번 인덱스에 두 개의 요소가 있다면 길이는 2입니다.
- 배열에 0번, 1번, 2번 인덱스에 세 개의 요소가 있다면 길이는 3입니다.
즉, 길이가 n인 배열의 유효한 인덱스 범위는 항상 0부터 n-1까지입니다. 이 규칙을 벗어난 인덱스에 접근하면 IndexOutOfRangeException 예외가 발생하므로 주의해야 합니다.
배열이 인덱스 0부터 시작함을 보여주는 코드
/* 인덱스 0부터 시작 */
for ( i = 0; i < 5; i++ ) {
n[ i ] = i + 5;
}예제
아래 전체 예제를 실행하면 C#에서 배열 인덱싱이 실제로 어떻게 동작하는지 직접 확인할 수 있습니다.
using System;
namespace ArrayApplication {
class MyArray {
static void Main(string[] args) {
int [] n = new int[5];
int i,j;
/* 인덱스 0부터 시작 */
for ( i = 0; i < 5; i++ ) {
n[ i ] = i + 5;
}
for (j = 0; j < 5; j++ ) {
Console.WriteLine("Element[{0}] = {1}", j, n[j]);
}
Console.ReadKey();
}
}
}실행 결과
Element[0] = 5 Element[1] = 6 Element[2] = 7 Element[3] = 8 Element[4] = 9
실행 결과에서 볼 수 있듯이, 길이가 5인 배열의 요소는 인덱스 0부터 4까지 차례대로 저장됩니다. 첫 번째 값 5가 n[0]에, 마지막 값 9가 n[4]에 할당된 것을 통해 C# 배열이 0 기반 인덱싱을 사용한다는 사실을 명확히 알 수 있습니다.