배열이란 여러개의 데이터를 묶음으로 선언하는 방식이다.
선언은 자료형 변수명[개수]; 로 선언한다.
ex) int arr[10];
배열은 다수의 데이터를 처리할때 매우 용이하다.
만약 100개의 데이터를 받아야한다면 우리는 중복되지않는 이름의 변수를 100개나 선언해야 한다.
변수의 이름짓기가 가장 어려운만큼 큰 난관이 아닐수 없다.
만약 짓는다 하더라도, 그 많은 변수명을 다 기억할 수는 없다.
때문에 배열은 이러한 상황에서 매우 용이하다.
각 첨자는 첨자연산자를 통하여 표현한다.
배열의 시작은 0부터 시작한다.
즉, int arr[10] 을 했다면, 첫번째값은 arr[0] 이다.
두번째값은 arr[1] 이다.
또한, arr[n-1] 은 arr의 n 번째 데이터를 의미한다.
왜냐하면 arr은 arr[0] 부터 시작하기 때문이다.
이런식으로 마지막 값은 arr[선언한 갯수-1] 이다.
간단히 정리하자면, 배열은 변수를 묶어놓은것이다.
배열을 선언하는것과 여러개의 변수를 선언하는것의 큰 차이는 메모리가 어떻게 할당되는지 이다.
배열은 처음 arr[0] 이 할당된 주소부터 주르륵 할당되지만,
여러개의 변수는 서로 다른 주소에 할당된다.
때문에 배열에는 arr[인덱스] 가 아닌, 다른 방법으로도 접근할 수 있는데, 이는
*(arr + 인덱스) 이다.(기준점을 arr로 잡았다면)
왜냐하면, 배열은 연속적으로 메모리를 잡기 때문에, 어떠한 기준점을 잡으면,
그 지점으로부터 + 인덱스의 주소의 값을 가져옴으로써 좌우의 데이터를 표현할 수 있다.
따라서 arr[0] 은 *arr이고, arr[1] 은 *(arr+1) 이다.
배열에는 다차원배열이란것이 존재한다.
간단히 설명하자면, 배열을 배열로 묶은것이 다차원 배열이다.
다차원배열중 일부인 이차원 배열의 선언은 다음과 같다.
자료형 변수명[2차원 배열의 개수][1차원 배열의 개수];
이때 총 생성되는 변수는 (2차원배열의 개수 * 1차원 배열의 개수) 개이다.
다차원 배열또한 다음과 같은 구조이다.
이처럼, 다차원배열또한 그보다 낮은 차원의 배열을 배열으로 묶은것이다.
'C' 카테고리의 다른 글
이진탐색 (0) | 2016.03.28 |
---|---|
선택정렬 & 버블정렬 (0) | 2016.03.28 |
문자열 (0) | 2016.03.28 |
과제 (0) | 2016.03.28 |
ASCII 아스키코드 (0) | 2016.03.28 |