Log to grow

[C# 기초] 배열 (선언, 초기화, 인덱스) 본문

PL/C#

[C# 기초] 배열 (선언, 초기화, 인덱스)

kkkrrr 2020. 1. 24. 18:08

1. 배열이란

배열은 같은 타입의 변수를 여러개 모아놓은 데이터 타입이다. 예를 들어, 5개의 정수를 변수로 선언한다고 했을 때 배열이 없다면 아래와 같이 일일히 변수를 선언해야 한다.

 

int number1;
int number2;
int number3;
int number4;
int number5;

 

이러한 변수의 갯수가 10개 100개로 늘어날 경우 변수를 일일히 선언하는 것은 매우 비효율적인 일이다. 따라서 이렇게 같은 타입의 변수를 여러개 선언할 때는 배열이라는 데이터타입을 이용한다. 

 

2. 배열의 선언

배열은 아래와 같이 자료형 뒤에 '[]'(대괄호)를 붙여 선언한다. 

 

int[] numbers;

 

지금 상태에서 배열은 변수 선언만 했을 뿐 메모리를 할당받지 않은 상태이다. 선언된 배열에 new 키워드를 이용하여 메모리를 할당해주자. 뒤에 오는 대괄호 안에는 배열의 크기(담길 값의 갯수)를 명시해주어야 한다.

int[] numbers = new int[5];

 

 

3. 배열의 초기화

배열을 선언하고 메모리를 할당했다면 각 요소에 값을 지정해주어야 한다. 배열을 선언하며 각 요소의 값을 지정해주는 것을 초기화라고 한다. 따로 초기화 코드를 입력하지 않는다면 모든 값은 각 타입의 기본값으로 초기화된다. 예를 들어, 위에서 선언한 배열은 초기화를 하지 않았으므로 5개의 요소 모두 int타입의 기본값인 0으로 초기화된다.


배열을 초기화하는 방법은 아래와 같이 {}(중괄호)를 이용하여 일일히 요소의 값을 입력해주면 된다.

 

int[] numbers = new int[]{1,2,3,4,5};

 

이 경우에는 요소를 모두 명시했기 때문에 요소의 갯수(배열의 크기)를 알려준 것과 다름없다. 따라서, new int 뒤에 오는 대괄호에 배열의 크기를 명시해줄 필요가 없다. 

 

또한, 배열의 요소를 입력해준다면 아래와 같이 축약해서 배열을 초기화할 수도 있다.

 

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

 

 

4. 배열 요소에 접근

배열을 초기화 했다면 이제 배열 요소에 접근해보자. 배열은 각 요소에 접근하기 위해 인덱스라는 것을 사용한다. 위에서 5개의 요소가 담긴 배열을 선언했으므로 이 배열은 5개의 인덱스를 가진다. 주의해야할 점은 인덱스가 1,2,3,4,5 가 아닌 0부터 시작하여 0,1,2,3,4 라는 점이다. 배열의 식별자 뒤에 [](대괄호)와 함께 인덱스를 명시하면 요소에 접근할 수 있다.

 

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

int num = numbers[0]; 				// num = 1;
int sum = numbers[0] + numbers[1];  // sum = 1 + 2

 

인덱스를 이용하여 배열의 요소 값을 다시 지정할 수도 있다.

 

numbers[0] = 3;
numbers[3] = 18;

 

 

 

5. 크기가 10인 배열을 선언하고 요소에 값을 담는 예제

int numbers = new int[10];

for(int i = 0; i < 10; i ++){
	numbers[i] = i + 1;
}

// numbers = {1,2,3,4,5,6,7,8,9,10}

 

Comments