Today
Total
Recent Posts
Recent Comments
Archives
05-19 03:21
«   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
반응형
관리 메뉴

UD_park's IT story

[C#] 배열/다차원 배열(feat.가변배열)의 기본 개념과 사용법 본문

IT - Language/C#

[C#] 배열/다차원 배열(feat.가변배열)의 기본 개념과 사용법

kingllzn 2018. 6. 26. 09:00
반응형
SMALL

[이 포스팅은

시작하세요! C# 7.1 프로그래밍

의 내용을 발췌하였습니다]

 

[보기용 예제 소스 코드에서 오류 발생시에

댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다]

 

 

 

이번에는 배열과 다차원 배열에

대한 기본 개념과 사용법을

포스팅해보도록 하겠습니다

 

일단 배열의 정의는 따로없지만

제가 직접 정의를 내린다고 한다면

어떠한 작업에서 필요한 일련의

데이터들을 순서대로 저장하는

메모리 공간 함수

 

라고 말할 수 있겠습니다

아마 배열은 대부분 C/C++/C#

모든 언어에서 중요한 역할을 하기에

정의를 쉽게 풀이하지않고

바로 넘어가겠습니다

 

기본적인 C#에서의 배열 문법은

아래와 같습니다

 

 

자료형 [] 배열이름 = new 자료형[배열자리수];

 

 

ex)                                        

int [] Array = new int[5];            

string [] Names = new string[100];

배열은 위와같이 사용합니다

 

혹시 모르시는 분들을 위해서

설명을 덧붙이자면

배열의 첫 번째 자리부터

각 자리들은 숫자로

자신들의 메모리 자리를 표시합니다

중요한점은 제일 첫 번째 자리는

1이 아닌 0이라는 것입니다

 

[배열 Array의 데이터 구조]

Array[0] = 1

Array[1] = 2

Array[2] = 3

Array[3] = 4

Array[4] = 5

 

이렇게 배열은 진행됩니다

 

그리고 배열은 사용에 따라

1차원, 2차원 ,3차원 등의

여러개의 차원으로 사용될 수 있습니다

 

그럼 1차원 부터 다차원까지

제가 작성한 보기 코드소스를 보며

상세하게 설명해보겠습니다

 

 

먼저 1차원 배열입니다

아마 여러 차원의 배열들 중에서

가장 기초적이지만 가장 널리 쓰이고

있지않을까 저는 생각됩니다

 

아래의 코드 소스를

보시겠습니다

위의 코드에서 15 부터

21번줄(19번 제외)은

출력을 위한 코드들로서

지금 현재는 무시하셔도 좋습니다

 

13번 줄이 바로 배열을 선언하고

그 값을 정의하는 코드입니다

그리고 19번줄의 코드에서 각 배열의

값을 위치로 읽어 출력했습니다

 

1차원 배열은 비교적 쉽고 간단하니

바로 2차원 배열로 넘어가보도록

하겠습니다

 

코드가 여태 다뤘던 보기들 보다

길어져서 보시기에 불편하시겠지만

눈 여겨 볼것은 바로

13번 줄과 결과 창입니다

 

결과창에 처음나오는

숫자들은 배열의 저장된

숫자들의 위치를 보기좋게

표현하기 위함입니다

 

컴파일에서 2차원 배열은

아래와 같이 저장되어있습니다

 

 

arr [0, 0] =  1

arr [0, 1] =  2

arr [0, 2] = 3

arr [0, 3] =  4

arr [0, 4] =  5

arr [1, 0] =  6

arr [1, 1] =  7

arr [1, 2]=  8

arr [1, 3] =  9

arr [1, 4] =  10

arr [2, 0] =  11

arr [2, 1] =  12 

arr [2, 2] =  13 

arr [2, 3] =  14 

arr [2, 4] =  15 

 

즉 arr[A, B]라고 하자면

A는 바로 가로 줄의 개수

B는 바로 세로 줄의 개수를

가리킵니다

 

쉽게 이해하자면 크기를

사용자의 지정대로 정할 수 있는

오목/바둑판이라고 생각하시면

될 것같습니다

 

자리를 찾는 방법은

예를 들어 9가있는 배열 자리를

찾고자 한다면

가로 1에 세로 3이라는 곳으로

찾아가면 9가 나옵니다

 

 

스크롤을 천천히 내리시면서

 

 

반대로 가로 2, 세로 0이면

어디일지 한번 맞춰보시기 바랍니다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

바로 11입니다

이렇게 배열의 위치를 찾아갑니다

혹시 아직 모르겠는 분들은

각 자리가 집이고

[숫자, 숫자]가 집 주소라고

생각하시면 될 것 같습니다

 

 

 

그럼 이제 3차원 배열을

설명해보겠습니다

 

3차원 배열은 쉽게 설명하자면

2차원 배열이 여러 개인 배열입니다

 

그림으로 쉽게 설명드리자면

 

 

 

위의 그림처럼 2차원 배열이

여러개가 있는것이 바로

3차원 배열입니다

 

소스코드로 3차원 배열을

파악해보도록 하겠습니다

 

2차원 배열보다 [ , ]괄호 안에

자릿수가 하나 더 추가된 모습외엔

크게 다른 점은 없어 보입니다

 

아래의 CMD 출력 결과창으로

값을 확인해 보겠습니다

 

 

앞서 설명한 바와같이

제일 위의 배열 자리를

표시한 출력에서 나온것과 같이

2차원 배열의 모습이

3개가 있습니다

 

그럼 4차원, 5차원 배열은

어떤 모습일까요?

 

이와 같은 개념으로 생각해본다면

4차원 배열은 3차원 배열이 여러개 인것,

5차원 배열은 4차원 배열이 여러개 인것을

유추해 낼 수 있습니다

 

그러나.. 4차원 5차원 배열은

배열을 제대로 이해하셨다면

이미 감이 오셨겠지만..

자비따윈 옆집 누렁이 진돗개한테 준

무지막지한 아이입니다

 

쓸 일이 매우 엄청 극소수 이기에

3차원까지만 아셔도 충분하고 충분합니다

 

그럼 추가적으로 가변 배열에

대해서 알려드리겠습니다

 

가변 배열은각 배열의 자리 크기를

임의로 결정할 수 있으므로

개발자의 선언과 정의에 따라

배열 각 각의 메모리 공간이

달라지는 것을 의미합니다

 

소스코드로는 다음과

같이 사용합니다

 

허나 가변 배열은

사실상 여러개의 배열에

각 각 얼마만큼 사용자가

메모리 공간을 별도로 할당했었는지

기억을 하고 있는 상태에서

프로그램을 만들어야하기 때문에

 

오히려 더욱 복잡하게 사용될 수

있는 가능성을 가지고 있습니다

(유지/보수하기 힘들기 때문)

 

이렇게 배열/다차원 배열의

기본 개념과 사용법에 대해

알아보았습니다

 

이상 포스팅을 마치도록

하겠습니다

 

 

혹시 다른것에 대해 궁금하신게

있으시다면

댓글에 달아주세요

 

아는것이면 친절하게 쉽게

모르는것이면 또 제가 알아내서

친절하게 쉽게 포스팅해서

설명해드리겠습니다

반응형
LIST
Comments