본문 바로가기

Programming/C Language

1차원 배열

배열(Array)란 무엇인지 알아보자!
왠지 이름만 들어도 다수의 데이터를 저장하고 처리하는데 용이할 것 같은 느낌적인 느낌이 든다.

예를 들어보자!

한 아파트에 거주하는 인원을 저장 및 갱신하는 프로그램을 만든다고 가정해보자.
이 아파트는 15개의 층이있고 각 층에는 네 가구가 입주해 있다.
그러면 우리는 각각의 데이터를 대입할 변수가 총 15 x 4 = 60개가 필요하다....
그렇다...
그러면 이런식으로 짜야할듯 싶다..
int floor01 , floor02 , floor03 , floor04 ....floor60 총 60개를 선언해줘야 한다.
이렇게는 안할랜다...

우리는 귀찮음을 덜기 위해 배열을 이용한다

배열을 선언하기 위해서는 배열이름 , 배열의 길이 , 자료형 이렇게 3가지의 요소만 있으면 배열선언이 가능하다.
배열선언의 예시를 확인해보자


int onedimarr[3]        -> 여느 변수와같이 자료형 자리에 자료형 int가 붙어줬고 , 변수명 위치에 변수명 onedimarr가 붙어줘서 두가지는 이해했다.
다만 저 뒤에 [3] 이건 처음본다.  이것이 3가지 요소중 하나인 배열의 길이를 의미한다.

즉 저 배열은 int형 변수 3개로 이루어진 배열이며 이름은 onedimarr이다.

          int

           int 

           int 

대충 이러한 느낌으로 배열을 생각하면되지만 중요한 사실은 int형 변수 3개가 나란히 선언되어 있다는 점이다!
나란히 선언된것 또한 나중에 포인터를 배우고 직접 주소값을 확인해 볼 것이다.

자 이제 배열의 선언법을 알았으니 배열의 접근방법에 대해 알아보자

int arr[3]이라는 배열이 있다고 가정하자 , 
위의 배열을 대상으로 접근하여 값을 저장할때는 다음과 같이 접근한다.


arr[0] = 10;            //배열 arr의 첫 번째 요소에 10을 저장해라

arr[1] = 11;            //배열 arr의 두 번째 요소에 11을 저장해라

arr[2] = 12;            //배열 arr의 세 번째 요소에 12를 저장해라


즉 배열의 접근법을 정리하면 이러한 식을 확인할 수 있다.
arr[index] = 20;        //배열 arr의 index+1번쨰 요소에 20을 저장해라

이렇게 배열에 접근할때는 [ ] 사이에 배열 요소의 위치를 명시하는데 이 위치에 들어가는 숫자를 '인덱스'라고 부른다.
여기서 중요한점은 , 배열의 위치 정보를 명시하는 인덱스값은 1이아닌 0에서 부터 시작한다! 라는 점이다
처음에는 많이 햇갈릴수 있지만 이 개념을 꽉 잡고 가야 추후에 다차원 배열 및 포인터부분에서 흔들리지 않을수 있다!

이제 예제를 통해 배열을 선언하고 접근해보자!


6행에서 정수형 길이5의 배열 arr를 선언해줬고 이어서 i선언 , sum 을 0으로 선언 및 초기화 해줬다.

그다음 10행에서 배열에 각각의 데이터를 초기화 해줬다.

12행에 for문을 통하여 배열에 순차적으로 접근하여 sum변수에 배열의 모든 요소의 값을 더하여 출력하였다.

index의 개념이 아직 정확히 잡히지 않았다면 다시한번 위로 올라가서 보고오자

여기서 중요한점은 반복문을 이용하면 배열 요소에 순차적인 접근이 가능하다는 점이다.




자 다음으로 배열의 접근방법에 대해 좀 더 살펴보도록 하자

우리가 배운 방식은 이러하다.


int arr[3] 선언 후 arr[0]=1 , arr[1]=2, ...이런식으로 진행하였다.


배열또한 여느 변수들과 같이 선언과 동시에 초기화가 가능하다.

int arr[3]={0,1,2];        이렇게하면 배열의 선언과 동시에 인덱스 순서대로 각 요소에 1,2,3이 저장된다.


또한 이렇게도 가능하다.
int arr[ ] = {1,2,3,4,5};    저기 배열 선언부에 인덱스를 채워넣어야할 자리가 비었다 , 이러한 경우에는 컴파일러가 초기화 리스트의 수를 참조하여 알아서 길이정보를 채워준다.

이렇게도 가능하다.

int arr[5] = {1,2};        이번 경우에는 모든 요소를 초기화 하지않고 2개의 요소만 초기화 하였다.    이런경우에는 3,4,5번째 요소 자리에는 0으로 채워진다.

'Programming > C Language' 카테고리의 다른 글

포인터 정리  (0) 2017.10.31
char형 배열 , 문자열  (0) 2017.10.31
static 변수 (static variable)  (0) 2017.10.31
전역 변수 (Global Variable)  (0) 2017.10.31
지역 변수 (Local Variable)  (0) 2017.10.31