Page 28 -
P. 28

TAKEAWAY 2.2  프로그램에 나온 식별자는 모두 선언해야 한다.

               예제 1-1을 보면 프로그램 안에서 직접 선언한 식별자는 A, i, main이다. 다른 식별자(printf,
               size_t, EXIT_SUCCESS)의 선언에 대해서는 나중에 설명할 것이다. main 함수 선언에 대해서는 앞
               에서 살펴봤다. 이 세 식별자의 선언문만 모아 보면 다음과 같다.

                 int main(void);
                 double A[5];
                 size_t i;

               세 선언문은 일정한 패턴을 따른다. 각 문장마다 식별자(A, i, main)가 나오고, 그 식별자가 갖는
               특정한 속성을 명시한다.

                          C
                 ●   i의 타입 은 size_t다.
                 ●    main 뒤에는 소괄호(parenthesis) (...)가 나온다. 그래서 선언 대상은 타입이 int인 함수라
                    는 것을 알 수 있다.
                                                                            C
                 ●     A 뒤에는 꺾쇠괄호(bracket) [...]가 나온다. 따라서 선언 대상은 배열(array) 이다. 배열은 타
                    입이 같은 원소를 하나로 묶는 데 사용한다. 여기서는 double 타입 원소 다섯 개로 구성했
                                                                         C
                    다. 이 배열을 구성하는 다섯 원소는 순서가 정해져 있고 인덱스(index) 라 부르는 숫자(0부
                    터 4)로 각 원소를 가리킬 수 있다.

                                      C
               선언문의 맨 앞에는 타입(type) 이 나온다. 세 선언문에서는 각각 int, double, size_t로 지정했다.
               각각의 의미에 대해서는 뒤에서 소개할 텐데, 일단 이렇게 타입이 지정된 식별자는 문장 안에서
               숫자처럼 사용한다는 정도만 알아 두자.

                                                                                 C
                                              C
               i와 A에 대한 선언문은, i와 A가 값(value) 을 저장하는 이름 있는 요소인 변수(variable) 라고 선언
               한다. 변수는 특정한 타입의 ‘뭔가’를 담은 박스로 표현하면 이해하기 쉽다.

                  그림 2-1 배열의 구조
               i  size_t ??
                     [0]      [1]       [2]       [3]       [4]
               A  double ??  double ??  double ??  double ??  double ??



               여기서 박스 전체(오브젝트)와 박스 종류(타입)와 박스 내용(값) 그리고 박스에 적힌 이름 또는 레
               이블(식별자)을 구분할 줄 알아야 한다. 그림에서 ?? 부분은 구체적인 값을 모른다는 뜻이다.




         32





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