C 배열
배열이란 같은 속성을 가진 것들을 나열해 놓은 것을 의미한다.
만약 1개의 변수를 사용하고 싶다면 int a; 2개의 변수를 사용하고 싶다면 int a; int b;와 같이 사용할 수 있지만
100개의 변수를 사용하고 싶다면 변수 100개를 일일히 선언하고 관리해야야 한다.
이 때 배열을 사용한다면 변수가 100개든 1000개든 1억개이든 간단히 선언할 수 있다.
배열의 선언 방법
C에서는 "배열의 타입" "배열의 이름" ["배열의 길이"] 와 같이 배열을 선언한다.
예를 들어 int arr[5]의 경우 크기가 5인 arr이라는 int 변수를 담을 수 있는 배열을 뜻한다.
그리고 배열의 각 칸에 접근하기 위해서는 arr[0], arr[1] ... arr[4]와 같이 인덱스를 통해서 접근할 수 있다.
인덱스는 0부터 시작하며, arr[0] = 1;과 같이 선언하면 0번째 칸에 1이 할당된다.
배열의 초기화
만약 1, 2, 3, 4, 5 값을 배열에 넣고 싶다면 어떻게 해야 할까?
위처럼 int arr[5];로 arr을 선언한 뒤 arr[0] = 1; arr[1] = 2; ... 와 같이 선언할 수도 있을 것이다.
하지만 더 편리하게 할 수 있는데, int arr[5] = {1, 2, 3, 4, 5}와 같이 선언하는 것이다.
위와 같이 배열을 쉽게 초기화할 수 있다.
또는 int arr[] = {1, 2, 3, 4, 5}와 같이도 초기화할 수 있는데 이 경우 컴파일러는 초기값의 개수를 통해 배열의 길이를 계산한다.
char[ ]
C에서는 문자열을 사용하기 위해 char을 배열로 선언하여 사용한다.
예를 들어 "Hello"라는 문자열을 사용하기 위해서는 char str[6] = "Hello"와 같이 선언하면 된다.
Hello가 5글자인데 배열의 크기를 6으로 설정한 이유는 문자열의 끝에 null 문자가 추가되기 때문이다.
예를 들어 char str[100] = "Hello"와 같은 경우, 앞에서부터 5개의 공간에는 H e l l o가 채워져 있다.
그리고 나머지 95개의 공간에는 더미 값이 채워져 있다.
사람은 문자열과 더미 값을 구분할 수 있지만, 컴퓨터는 이를 구분할 수 없고
문자열의 끝을 인식하기 위해 문자열의 끝에 null을 추가한다.