2012년 8월 30일 목요일

배열

배열은 동일한 자료형으로 구성된 기억 장소의 집합이다. 배열 내의 특정 위치를 지칭하기 위해서 첨자를 사용한다. 배열의 첨자는 대괄호 [ ]로 표현한다. 배열의 요소는 항상 0부터 시작하며, 마지막 요소의 번호는 n-1이 된다. 배열명은 배열의 시작 주소이다.
 1 자료형 배열명[갯수];



다차원 배열

2차원 배열은 2개의 첨자를 가지며, 3차원 배열은 3개의 첨자를 가진다. 배열의 차원에는 제한이 없다.
2차원 배열의 요소는 1차원 배열이다. 2차원 배열에서 행의 숫자는 생략할 수 있다.

 1 자료형 배열명[갯수][갯수];



초기화

 1 int arr[4] = {10, 20, 30, 40};
 2 int arr[] = {10, 20, 30, 40};
 3 int arr[4][2] = {10, 20, 30, 40, 50, 60, 70, 80};
 4 int arr[4][2] = {{10, 20}, {30, 40}, {50, 60}, {70, 80}};
 5 int arr[4] = {10, 20, 30, }; // 쉼표를 사용하면 마지막 요소는 0으로 초기화된다.



배열의 크기

 1 #include <stdio.h>
 2 
 3 /*
 4     배열의 크기
 5 */
 6 
 7 int main ()
 8 {  
 9     int arr[] = {1, 2, 3, 4};
10 
11     printf("%d\n", sizeof(arr)/sizeof(int));
12 
13     system("PAUSE");
14     return 0;
15 }




문자의 배열

문자열을 저장하기 위해서는 문자형배열을 이용할 수도 있고, 포인터를 이용할 수도 있다. 배열의 이름은 포인터의 역할을 하므로, 두 가지는 실제로 같은 것이라 볼 수 있다.
문자열의 마지막에는 널문자가 포함되야 하므로, 문자형 배열의 크기는 실제 문자의 갯수보다 1이 커야한다.
 1 char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
 2 char str[6] = "Hello";
 3 char* str = "Hello";