03.배열
- 최초 등록일
- 2018.05.02
- 최종 저작일
- 2018.05
- 9페이지/ MS 워드
- 가격 1,000원
목차
1. 배열(Array)
2. 구조체(Structure)
3. 포인터(Pointer)
4. 동적 메모리 할당
본문내용
1. 배열(Array)
: 배열은 여러 개의 동일한 데이터 타입의 데이터를 한번에 만들 때 사용된다.
만약 배열을 사용하지 않고 여러 정수를 저장하기 위해서는 저장하려는 정수의 개수만큼의 변수를 선언해야 한다. 이는 서로 다른 이름으로 저장되어 다른 연산이나 데이터 교환에 있어서 매우 큰 비효율을 초래한다.
예를 들어 정수 6개를 저장하기 위해서는 배열을 사용하면 int A[6]; 으로 간단하게 선언할 수 있지만, 배열이 없으면 int a1, a2, a3, a4, a5, a6; 으로 불편하게 선언해야 한다.
배열은 인덱스와 요소 쌍의 집합으로 표현할 수 있는데 인덱스가 주어지면 해당하는 요소가 대응되는 자료구조이며, 배열에서는 인덱스를 사용하여 요소에 직접 접근한다.
배열에는 기본적으로 1차원 배열이 존재하는데 배열의 인덱스는 항상 0부터 시작한다. 배열의 기본 주소는 항상 배열의 첫 번째 요소의 주소가 된다. 실제로 배열 A[6]를 표를 통해 만들어보면
배열의 첫 번째인 A[0]의 주소가 A의 기본 주소가 되고, 각 인덱스마다 요소가 대응되는 것을 살펴볼 수 있다.
2차원 배열은 1차원 배열이 여러 개 모여 이루어지는 행과 열을 갖는 배열이다. 실제 메모리 안에서의 위치는 1차원 배열과 마찬가지로 선형으로 저장된다.
int A[3][4];로 선언한다.
함수 안에서 매개 변수로 배열을 받아 배열의 내용을 수정할 경우 원래의 배열이 수정되는 결과를 초래할 수 있다. 따라서 배열의 이름은 Call by Reference의 결과를 갖는 포인터와 같은 역할을 한다. 위에서 얘기했듯이 배열의 기본 주소는 배열의 첫 번째 요소의 주소라고 했는데 이처럼 배열의 이름에 기반 주소가 저장되기 때문에 주소 참조의 역할을 할 수 있는 것이다. 배열이 포인터 역할을 하기 때문에 다른 함수에서의 배열 원소 값 변경은 호출자인 main함수에게 영향을 미치게 된다.
참고 자료
없음