250x250
Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

minjea.dev의 코딩블로그

[c#] 아주 오래전에 했어야 했으나 지금에서야 하는 배열강좌 본문

코딩강좌/c#

[c#] 아주 오래전에 했어야 했으나 지금에서야 하는 배열강좌

minjea.dev 2022. 4. 18. 12:00
728x90

강좌글을 확인하다보니, 아주 예전에 했어야 했던 배열 강좌를 안한것을 알게 되었습니다. 그래서 오늘 배열 강좌를 업로드하게 되었습니다.

 

배열이란 같은 타입의 자료형을 연속적으로 배열한 것으로써, 이것이 왜 필요한지에 대하여 의문점을 가지실수도 있습니다. 배열이 필요한 이유는, 여러개의 상품의 가격을 변수로 만든다고 생각을 해봅시다. 다음과 같이 말이죠

int snack = 1500;
int ham = 3000;
int fish = 5000;
int meat = 2000;

현재는 5개의 상품의 가격만을 나열하고있지만, 시간이 지나며 상품이 추가되어 수십개, 수백개, 상상력을 더해서, 수천, 수만개의 상품의 가격을 나열한다고 생각해봅시다. 그렇다면 엄청나게 고통일 것입니다. 이렇게 수천, 수만개의 코드를 줄일수 있는 방법이 없을까요? 이럴때 배열을 이용하시면 코드가 엄청 짧아집니다. 배열은 다음과 같이 선언할수 있습닏니다.

타입 [] 변수명 = new 타입[배열길이]{원소1,원소2,원소3....};

여기서 new는, 타입이 참조형식일 경우, 힙에 그 형식에 필요한 메모리를 할당하는 역할을 합니다. 타입 앞에 [](대괄호)는 해당 변수가 배열이라는 것을 c#에게 알려줍니다.

 

또한 요소 개수를 지정하지 않을수도 있습니다. 

타입 [] 변수명 = new 타입[]{원소1,원소2,원소3....};

 

이렇게 되면 c#에서 알아서 개수를 알아내 컴파일 과정에서 코드에 개수를 삽입합니다. 그러면 한번 배열을 선언해 봅시다. 아래는 int 형 배열에 10,100,1000,10000을 순서대로 추가한 예제입니다.

int [] numbers = new int[]{10,100,1000,10000};

그런데, 이렇게 배열을 선언하고 나니 원소를 어떻게 꺼내오는지에 대해서도 궁금해집니다. 그건 배열의 인덱스를 이용해 가져올수 있습니다. 배열의 인덱스는 0부터 시작하며, 다음 원소의 인덱스는 이전 값에서 1씩 늘어납니다. 즉, 다음과 같이 원소를 꺼내올수 있는 겁니다.

numbers[0]; // 10
numbers[1]; // 100
numbers[2]; // 1000
numbers[3]; // 10000

배열의 크기는 고정됩니다. 아닌것 같으실겁니다. 왜냐하면 배열을 새로 만들어 대입하거나, 다른 배열이 담긴 변수를 가리키는것은 가능하기 때문입니다. 그렇지만 이런 경우도, 기존 배열의 크기나 원소가 변경된건 아니기 때문에 기존 배열의 크기가 변경되었다고는 할수 없습니다.

 

이렇게 오늘은 클래스를 배우다가 갑자기 배열을 배우시게 되셨는데, 혼란스러우셨을듯 합니다. 강의를 늦게 올린 점 다시 사과드리면서 이만 이번 포스트도 마치도록 하겠습니다. 매일매일 코딩연습 하시는거 잊지 마시길 바랍니다~ㅎㅎ

728x90

'코딩강좌 > c#' 카테고리의 다른 글

[c#] 추상 클래스  (0) 2022.04.20
[c#] get과 set  (0) 2022.04.19
[c#] 오버로드 (오버라이딩 아님주의!) 그리고 여러 기능들  (1) 2022.04.17
[c#] virtual 그리고 override  (0) 2022.04.16
[c#] 형변환  (0) 2022.04.15