Page 31 -
P. 31

A는 여러 요소로 구성되어 있어서 이보다 좀 복잡하다.

                                                                                getting-started.c
                      8   double A[5] = {
                      9     [0] = 9.0,                                                                2
                    10     [1] = 2.9,
                    11     [4] = 3.E+25,
                    12     [3] = .00007,                                                              프로그램의 핵심 구조
                    13   };


                    이렇게 하면 A를 구성하는 다섯 요소의 값은 각각 9.0, 2.9, 0.0, 0.00007, 3.0E+25가 된다.

                       그림 2-3 배열 A의 구조
                          [0]       [1]        [2]         [3]            [4]
                     A  double 9.0  double 2.9  double 0.0  double 0.00007  double 3.0E+25


                                                       C
                    이런 방식을 지정 초기자(designated initializer) 라 부른다. 즉, 초기화할 배열 원소를 대괄호 안의
                    정수로 지정해서 해당 원소의 값을 초기화한다. 예를 들어 [4] = 3.E+25라고 적으면 배열 A의 마
                    지막 원소의 값을 3.E+25로 지정한다. 또한 C 언어 규칙에 따르면 초기자로 지정하지 않은 원소
                    값은 0으로 설정된다. 예제에서 [2]가 이 경우에 해당하며 값이 0.0으로 설정된다.              2

                     TAKEAWAY 2.7  초기자에서 값을 지정하지 않은 원소는 디폴트 값인 0으로 지정된다.
                                                   C
                    여기서 볼 수 있듯이 배열의 위치(index) 를 표현할 때 첫 번째 원소는 1이 아닌 0부터 시작한다.
                    인덱스는 배열의 시작점으로부터 떨어진 거리로 생각하면 기억하기 쉽다.

                     TAKEAWAY 2.8  원소가 n개인 배열에서 첫 번째 원소의 인덱스는 0이고, 마지막 원소의 인덱스는
                    n-1이다.

                    함수를 정의하려면 선언문 뒤에 함수 코드를 중괄호({...})로 묶어서 적으면 된다.

                      int main(void) {
                        ...
                      }


                    지금까지 살펴본 예제에서는 두 가지 요소에 대해 이름 짓는 방법을 살펴봤다. i와 A는 오브젝트
                                                             C
                          C
                    (object) 를 가리켰고, main과 printf는 함수(function) 를 가리켰다. 오브젝트와 함수를 선언하는

                    2  소수점(.)과 지수(E+25)가 있는 숫자 리터럴에 대해서는 뒤에서 설명한다.

                                                                                                  35





     모던c.indd   35                                                                           2021-12-29   오후 2:32:58
   26   27   28   29   30   31   32   33   34   35