Array는 같은 Datatype을 가진 많은 변수들을 하나의 변수로 저장할 수 있게 해주는 자료 구조이다.
일반적으로 int a[5]; 로 입력하며 대괄호 안에는 변수도 들어갈 수 있으나 컴파일러마다 허용해주는 것이 제각각이기 때문에 정수형 데이터로 사용하는 것이 좋다.
sizeof() 함수를 이용해 int a[10]; 의 메모리 크기를 검사해보면 40이 출력된다. 즉 int형 데이터가 4byte이므로 그것의 10개 만큼의 데이터 공간(0번째 index 부터 9번째 index)을 배열로써 만들 수 있는것이다.
만약 20개의 데이터에 값을 순차적으로 한꺼번에 저장하려면 for 반복문을 사용해 위와 같이 설정할 수 있다.
기본 설정값으로 반복문을 이용하지 않고 array에 초기 값을 따로 입력해줘도 위와 같이 출력할 수 있다.
8개 정수의 평균값을 알고 싶다면 먼저 0번째 인덱스부터 7번째 인덱스 배열까지 반복문을 이용해 각각 들어있는 8개 정수를 모두 합한 뒤 8로 나눠주면 구할 수 있다.
sum = sum + abc[i]; 는 sum += abc[i]; 로 바꿔줄 수 있다.
array를 사용할 때는 절대로 해당 인덱스를 넘어서 입력해서는 안된다. a[3] 이라는 배열을 저장했는데 만약 존재하지 않는 3번째 인덱스를 출력하면 심각한 오류가 발생하는 것이다.
char 데이터 타입은 문자 1개만을 저장할 수 있는데 여러 문자열을 출력할 수 있게 char 데이터 타입의 배열을 이용한다.
char 배열 선언 방법은 대표적으로 3가지이다. 첫번째로는 위 처럼 문자 1개를 저장하여 출력하는 방식.
char a[6] = {'Y', 'J', 'G', 'L', 'A', 'B'};
6개의 배열을 저장했을 때 char 배열에서는 반드시 문자열의 끝을 컴퓨터에게 알리는 \0을 입력해야 한다. 이것을 입력하지 않으면 컴퓨터는 문자열이 끝나지 않았다고 판단한다.
char a[7] = {'Y', 'J', 'G', 'L', 'A', 'B', '\0'};
\0또한 하나의 index를 취급하므로 배열을 1공간 추가해야 한다. \0을 NULL 값이라고 부른다.
char 배열은 %s를 통해 출력 가능하다.
두번째로는 " " 을 이용해 출력하는 방법이 있으며 컴퓨터가 자동으로 NULL값을 추가하여 출력한다.
문자열을 어느정도 크기로 배열을 둘 지 예상이 어렵다면 배열 공간을 공백을 두고 사용해도 마찬가지로 컴퓨터가 자동으로 NULL 값을 추가하여 출력한다.
char 데이터 1개의 크기는 1byte로, sizeof() 함수를 이용해서 크기를 측정해보면 모두 7byte의 크기로 출력되는 것을 알 수 있다. 변수c의 경우 배열 크기를 지정해주지 않았음에도 자동으로 7로 입력된다.
위 그림은 2차원 배열을 시각화한것이다.
배열을 a[6][6] 과 같이 2개를 선언하면 2차원 상의 x좌표와 y좌표가 존재하는 배열 공간을 설정할 수 있다.