Page 46 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 46

식 sizeof(a) / sizeof(a[0])는 요소의 자료형이나 크기에 영향을 받지 않고 배열의 요소 개수

                   를 구할 수 있습니다.
                      배열 a의 요소 개수를 sizeof(a) / sizeof(int)로 구하는 것은 안전하지 않습니다. 왜냐하면 배열의 자료형이 달라질 때
                   대응할 수 없기 때문입니다. 예를 들어, 배열 a의 자료형이 long형으로 달라지면 앞의 수식은 sizeof(a) / sizeof(long)으로
                   달라져야 합니다.


                   이 프로그램의 배열 a의 선언을 아래와 같이 변경하겠습니다.


                     int a[ ] = {1, 2, 3, 4, 5, 6};



                   프로그램을 컴파일하고 실행하면 변수 na는 6으로 초기화되                       배열 a의 요소 개수는 6입니다.
                   고, 6개의 요솟값이 출력됩니다.                                     a[0] = 1
                                                                          a[1] = 2
                      chap02/intary_init2.c는 본문에 소개되지 않은 파일입니다. 소스를 다운로드해   a[2] = 3
                   직접 실행해 보세요.                                            a[3] = 4
                                                                          a[4] = 5
                                                                          a[5] = 6
                   이 책에서는 배열을 그림 2-4와 같이 표기합니다.


                   a   0  1    처음                  b
                       1  2              인덱스          0   1   2   3    4
                       2  3              요솟값         1   2    3   4    5
                       3  4
                       4  5    끝                   처음                   끝

                                            [그림 2-4] 배열의 표기

                   위 그림에서 네모 칸 안에 쓰인 숫자나 문자가 요솟값이고, 네모 칸의 왼쪽 또는 위쪽에 쓰인
                   작은 숫자가 인덱스 값입니다. 그림  a 처럼 요소를 세로로 정렬할 때는 인덱스가 작은 값을
                   위쪽에, 그림  b 처럼 요소를 가로로 정렬할 때는 인덱스가 작은 값을 왼쪽에 오도록 합니다.
                   앞에서 배웠듯이 배열을 선언할 때 요소 개수는 상수만 사용합니다. 그러므로 아래와 같이 배

                   열을 선언하면 안 됩니다.


                             int n;
                             printf("요소 개수 : ");
                     X
                             scanf("%d", &n);
                             int a[n];           /* 컴파일 오류 : n은 상수식이 아닙니다. */



                   이 프로그램을 컴파일하면 오류가 발생합니다. 요소 개수를 상수가 아닌 변수 n을 사용했기





                   46   C 알고리즘
   41   42   43   44   45   46   47   48   49   50   51