Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования C++. ΠŸΡΡ‚ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 15

Автор Π‘Ρ‚Π΅Π½Π»ΠΈ Π›ΠΈΠΏΠΏΠΌΠ°Π½

Π’ языкС Π‘++ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Новая строка (newline) \n Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ табуляция (horizontal tab) \t ΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅, Π·Π²ΠΎΠ½ΠΎΠΊ (alert) \a Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ табуляция (vertical tab) \v Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ символ (backspace) \b Двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° (double quote) \" Наклонная Ρ‡Π΅Ρ€Ρ‚Π° Π²Π»Π΅Π²ΠΎ (backslash) \\ Π’ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ (question mark) \? ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Π°Ρ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° (single quote) \' Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (carriage return) \r ΠŸΡ€ΠΎΠ³ΠΎΠ½ страницы (formfeed) \f    

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ символ:

std::cout << '\n';      // ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ строку

std::cout << "\tHi!\n"; // ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ,

                        // тСкст "Hi!" ΠΈ Π½ΠΎΠ²ΡƒΡŽ строка

МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π³Π΄Π΅ Π·Π° \x слСдуСт ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€ ΠΈΠ»ΠΈ Π·Π° \ слСдуСт ΠΎΠ΄Π½Π°, Π΄Π²Π΅ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹. Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ символ ΠΏΠΎ Π΅Π³ΠΎ числовому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² (подразумСваСтся использованиС Π½Π°Π±ΠΎΡ€Π° символов Latin-1):

\7 (ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅)    \12  (новая строка) \40 (ΠΏΡ€ΠΎΠ±Π΅Π»)

\0 (Π½ΡƒΠ»Π΅Π²ΠΎΠΉ символ) \115 (символ 'M') \x4d (символ 'M')

Как ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ языком, Ρ‚Π°ΠΊΠΎΠΉ синтаксис ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ символа:

std::cout << "Hi \x4dO\115!\n"; // Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Hi MOM! ΠΈ Π½ΠΎΠ²ΡƒΡŽ строку

std::cout << '\115' << '\n';    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ M ΠΈ Π½ΠΎΠ²ΡƒΡŽ строку

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ссли символ \ сопровоТдаСтся Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ трСмя Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ, Ρ‚ΠΎ Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ с Π½ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ. НапримСр, Π»ΠΈΡ‚Π΅Ρ€Π°Π» "\1234" прСдставляСт Π΄Π²Π° символа: символ, прСдставлСнный Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 123, ΠΈ символ 4. Π€ΠΎΡ€ΠΌΠ° \x, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹; Π»ΠΈΡ‚Π΅Ρ€Π°Π» "\x1234" прСдставляСт ΠΎΠ΄ΠΈΠ½ 16-разрядный символ, состоящий ΠΈΠ· Π±ΠΈΡ‚ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… этим Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ Ρ†ΠΈΡ„Ρ€Π°ΠΌ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ машин ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 8-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ символы, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ значСния вряд Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ символы с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 8 Π±ΠΈΡ‚Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² символов с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· прСфиксов, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π». 2.2.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ суффикса ΠΈΠ»ΠΈ прСфикса, прСдставлСнного Π² Ρ‚Π°Π±Π». 2.2, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΈΠΏ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈΠ»ΠΈ символьного Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°.

L'a'     // Π»ΠΈΡ‚Π΅Ρ€Π°Π» Ρ‚ΠΈΠΏΠ° wchar_t (ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ символ)

u8"hi!"  // строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π» utf-8 (8-битовая ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Unicode)

42ULL    // цСлочислСнный Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π», Ρ‚ΠΈΠΏ unsigned long long

1E-3F    // Π»ΠΈΡ‚Π΅Ρ€Π°Π» с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‚ΠΈΠΏ float

3.14159L // Π»ΠΈΡ‚Π΅Ρ€Π°Π» с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ,

         // Ρ‚ΠΈΠΏ long double

ΠŸΡ€ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° ΠΊΠ°ΠΊ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏ long ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΡƒΠΊΠ²Ρƒ L Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС; строчная Π±ΡƒΠΊΠ²Π° l слишком ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Ρ†ΠΈΡ„Ρ€Ρƒ 1.


Π’Π°Π±Π»ΠΈΡ†Π° 2.2. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’ΠΈΠΏ U Π‘ΠΈΠΌΠ²ΠΎΠ» Unicode 16 char16_t U Π‘ΠΈΠΌΠ²ΠΎΠ» Unicode 32 char32_t L Π¨ΠΈΡ€ΠΎΠΊΠΈΠΉ символ wchar_t U8 utf-8 (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹) char ЦСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Буффикс ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Буффикс Π’ΠΈΠΏ u ΠΈΠ»ΠΈ U unsigned f ΠΈΠ»ΠΈ F float l ΠΈΠ»ΠΈ L long l ΠΈΠ»ΠΈ L long double Ll ΠΈΠ»ΠΈ LL long long    

МоТно нСпосрСдствСнно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ цСлочислСнного Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°. Если суффикс содСрТит символ U, Ρ‚ΠΎ Ρƒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρƒ дСсятичного, Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° с суффиксом U Π±ΡƒΠ΄Π΅Ρ‚ наимСньший Ρ‚ΠΈΠΏ unsigned int, unsigned long ΠΈΠ»ΠΈ unsigned long long, Π² соотвСтствии со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°. Если суффикс Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ символ L, Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΎΠΌ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ long; Ссли суффикс Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ символы LL, Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΎΠΌ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ long long ΠΈΠ»ΠΈ unsigned long long.

МоТно ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ символ U с символом L ΠΈΠ»ΠΈ символами LL. Π›ΠΈΡ‚Π΅Ρ€Π°Π» с суффиксом UL, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, задаст Ρ‚ΠΈΠΏ unsigned long ΠΈΠ»ΠΈ unsigned long long, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, помСщаСтся Π»ΠΈ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Ρ‚ΠΈΠΏ unsigned long.

ЛогичСскиС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

Π‘Π»ΠΎΠ²Π° true ΠΈ false β€” это логичСскиС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ (Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Ρ‚ΠΈΠΏΠ° bool)

bool test = false;

Π‘Π»ΠΎΠ²ΠΎ nullptr являСтся Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ. Π‘ΠΎΠ»Π΅Π΅ подробная информация ΠΎΠ± указатСлях ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ nullptr ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 2.3.2.

УпраТнСния Ρ€Π°Π·Π΄Π΅Π»Π° 2.1.3

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.5. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ². ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ различия ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ:

(a) 'a', L'a', "a", L"a"

(b) 10, 10u, 10L, 10uL, 012, 0xC

(c) 3.14, 3.14f, 3.14L

(d) 10, 10u, 10., 10e-2

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.6. Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ Π»ΠΈ различия ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ опрСдСлСниями:

int month = 9, day = 7;

int month = 09, day = 07;

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.7. КакиС значСния ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ эти Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹? Какой Ρ‚ΠΈΠΏ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ…?

(a) "Who goes with F\145rgus?\012"

(b) 3.14e1L (c) 1024f (d) 3.14L

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.8. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° значСния 2M, сопровоТдаСмого Π½ΠΎΠ²ΠΎΠΉ строкой. ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти 2, Π·Π°Ρ‚Π΅ΠΌ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ, ΠΏΠΎΡ‚ΠΎΠΌ M ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ† символ Π½ΠΎΠ²ΠΎΠΉ строки.

2.2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ (variable) β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² языкС Π‘++ Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ. Π’ΠΈΠΏ опрСдСляСт Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ располоТСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² памяти, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Π½Π΅ΠΉ, ΠΈ Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Ρ… ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Π‘++ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ "пСрСмСнная" ΠΈ "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚" ΠΊΠ°ΠΊ синонимы.

2.2.1. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ состоит ΠΈΠ· спСцификатора Ρ‚ΠΈΠΏΠ° (type specifier), сопровоТдаСмого списком ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми, ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой. Π’ΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² спискС Π·Π°Π΄Π°Π½ спСцификатором Ρ‚ΠΈΠΏΠ°. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ (Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… опрСдСляСмых ΠΈΠΌΠ΅Π½:

int sum = 0, value, // sum, value ΠΈ units_sold ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ int

    units_sold = 0; // sum ΠΈ units_sold ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 0

Sales_item item;    // item ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Sales_item (см. p. 1.5.1)

// string β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

// символов ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹

std::string book("0-201-78345-X"); // book ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° строковым

                                   // Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ

Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ book использован Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ std::string. Подобно классу iostream (см. Ρ€Π°Π·Π΄Π΅Π» 1.2), класс string ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² пространствС ΠΈΠΌΠ΅Π½ std. Π‘ΠΎΠ»Π΅Π΅ подробная информация ΠΎ классС string ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² Π³Π»Π°Π²Π΅ 3, Π° ΠΏΠΎΠΊΠ° достаточно Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ string прСдставляСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ string прСдоставляСт нСсколько способов ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ строковых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Один ΠΈΠ· Π½ΠΈΡ… β€” ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° (см. Ρ€Π°Π·Π΄Π΅Π» 2.1.3). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, пСрСмСнная book инициализируСтся символами 0-201-78345-X.