10월, 2019의 게시물 표시

1차원 배열

1차원 배열 'Hello' 문자열을 담을 수 있는 그릇은 어떻게 만들까? 연속된 자료를 하나의 변수명을 가지고 다룰 수는 없을까? 기본 자료형을 확장해서 변수의 개수를 줄이는 효과와 함께 프로그램의 가독성을 높이고자 배열을 사용한다. 배열은 어떻게 작성할까? int array[10]; 기호는 '[]'를 사용한다. 배열의 이름은 행을 대표하는 주소의 이름이고 일반 변수의 이름은 데이터 값의 이름과 구분할 필요가 있다. 배열의 길이는 배열을 구성하는 변수의 개수이고, 컴파일 타임 이전에 결정되어야 하므로 반드시 상수를 사용해야한다. 전처리기(#)에서 처리하는 경우는 가능하다. #include <stdio.h> #define MAX 20 void main(void) { int array[MAX]; // OK int size = 10; // int arr[size]; // Error } 배열과 메모리의 관계 배열이 메모리 사용법의 기본이 되는 이유는 메모리의 실제 구조와 매우 닮아있기 때문이다. 특히, 1바이트로 처리되는 char 타입이라면 물리적으로 메모리와 완전히 일치한다. 많은 양의 데이터를 일괄적으로 처리해야 하는 경우에 유용하다. 지역적 특성을 지닐 수도 있고, 전역적 특성을 지닐 수도 있다. 1차원 배열의 선언과 초기화 배열 요소의 위치를 표현한다. 인덱스는 0부터 시작한다. array[0] = 10 // 1번째 요소에 10을 대입해라. 배열의 크기를 모를 경우 []안을 비워도 좋다. (단, 선언과 대입이 함께 할 경우에만 적용된다.) int a[] = {3, 4, 5, 6} 다음은 1차원 배열의 선언 예제이다. #include <stdio.h> #define MAX 20 int main(void) { int array[5]; array[0] = 10; array[1] = 20; array[2] = 30; print