Page 18 -
P. 18

정수 타입을 unsigned로 선언하면 음수 값을 갖지는 않지만 양수 값을 표현할 수 있는 범위가 2                          1

                        배로 넓어진다(0을 +0과 -  0으로 구분하지 않는다면 표현 범위가 1만큼 더 넓어진다). signed와
                        unsigned는 short, int 등의 명사를 위한 형용사로 간주될 수 있다. 이때 형용사만 선언되었을                       C+  + 기초
                        경우 기본 명사는 int다.

                        char 타입은 문자와 좁은 범위의 숫자, 두 가지 방식으로 사용할 수 있다. char는 정말 특이한 아
                        키텍처를 제외하면 거의 항상 8비트의 길이를 갖는다. 따라서 우리는 -128~127(signed)이나
                        0~255(unsigned) 범위의 값을 나타낼 수 있고 정수에 사용할 수 있는 모든 수치 연산을 수행할

                        수 있다. signed와 unsigned 모두 선언하지 않을 때, 어떤 버전을 사용할 것인지는 컴파일러의 구
                        현에 따라 다르다. 또한, 8비트에 맞는 코드를 갖는 모든 문자를 나타낼 수도 있다. 심지어 혼합할
                        수도 있는데, 예를 들어 ‘a’ + 7은 ‘h’다. 이는 문자의 기본 코드에 따라 달라진다. 잠재적인 혼
                        란은 명백한 시간 낭비로 이어질 수 있으므로 문자와 숫자를 혼합하지 않을 것을 강력히 권한다.

                        그러나 작은 숫자를 char나 unsigned char에 저장하면 크기가 큰 컨테이너에 저장할 때 유용할
                        수 있다.

                        논리값은 bool 타입으로 표시하면 좋다. bool 타입의 변수는 true와 false로 저장할 수 있다.
                        줄어들지 않는 범위 속성은 부동소수점에도 동일하게 적용된다. float는 double보다 좁거나 같

                        고, double은 long double보다 좁거나 같다. 일반적인 크기는 float 32비트, double 64비트,
                        long double 80비트다.

                        다음 절에서 정수 타입과 부동소수점 타입에서 자주 사용하는 연산들을 보여줄 것이다. '과 " 모
                        두 문자와 문자열에 사용하는 파이썬과는 달리 C++는 둘을 구별한다. C++ 컴파일러는 ‘a’를
                        문자 “a”(char 타입)로 생각하고 “a”를 “a”를 포함하고 \0으로 끝나는 문자열(즉, char[2] 타입)로
                        생각한다. 만약 파이썬을 사용한 적이 있다면 이를 주의하길 바란다.


                              Caution  변수를 가능한 한 늦게 선언하라. 일반적으로 변수를 처음 사용하기 직전에 선언하는 것이 좋고,
                          가능하다면 초기화할 수 있는 상태 이전에는 선언하지 않는 것이 좋다.



                        이런 특성은 프로그램의 코드가 길어질 때 가독성을 높인다. 또한, 컴파일러가 중첩된 범위에서

                        메모리를 더 효율적으로 사용할 수 있게 해준다.
                        C++11은 변수의 타입을 추론할 수 있다. 예를 들어,                                            C+  +11


                        auto i4 = i3 + 7;




                                                                                                      029




         모던c++_09.indd   29                                                                     2017-12-11   오전 11:02:54
   13   14   15   16   17   18   19   20   21   22   23