ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ Π² Π‘++

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ячСйки памяти, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Однако, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ…, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ константы Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅; поэтому создаваСмая константа Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сразу ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° (Ρ‚.Π΅. константа инициализируСтся ΠΏΡ€ΠΈ объявлСнии). Π’ Π‘++ прСдусмотрСны Π΄Π²Π° Ρ‚ΠΈΠΏΠ° констант — Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅. Π›ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Π°Ρ константа — это… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ Π² Π‘++ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ рассказываСтся ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ констант Π² ΡΠ·Ρ‹ΠΊΠ΅ программирования Π‘++. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Π°Ρ тСория соотвСтствуСт Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ ΡƒΡ€ΠΎΠ²Π½ΡŽ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ язык программирования.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ячСйки памяти, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Однако, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ…, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ константы Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅; поэтому создаваСмая константа Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сразу ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° (Ρ‚.Π΅. константа инициализируСтся ΠΏΡ€ΠΈ объявлСнии).

Π’ Π‘++ прСдусмотрСны Π΄Π²Π° Ρ‚ΠΈΠΏΠ° констант — Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅. Π›ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Π°Ρ константа — это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, нСпосрСдствСнно Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅; Ρ‚ΠΈΠΏ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠΉ константы опрСдСляСтся Π΅Π΅ Π²Π½Π΅ΡˆΠ½ΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ. Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… констант: числовыС, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅, строковыС.

ЧисловыС константы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΌΠΈ ΠΈ Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌΠΈ. Π¦Π΅Π»Ρ‹Π΅, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ дСсятичноС (Ρ‚ΠΈΠΏΠ° int), Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС:

  • Β· дСсятичныС: -18, 0, 12, 345, …;
  • Β· Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ (Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π½ΡƒΠ»Ρ): 00, 014, 045, 0777…;
  • Β· ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ (Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 0Ρ…): 0×0000, 0Ρ…1A27, 0Ρ…5FFF, 0Ρ…FFF,…

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ†Π΅Π»Ρ‹Π΅ дСсятичныС константы ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ int.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°ΠΌ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ суффиксов L, l (long), U ΠΈ u (unsigned). НапримСр, константа 15L Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ long. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ суффиксы L ΠΈ UΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 24UL.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ вСщСствСнного Ρ‚ΠΈΠΏΠ° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΈΠΏ double. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ вСщСствСнных констант: -1.314, 3.98, 0.8765, … Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ константы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ суффиксов F, f (float), L ΠΈ l (long). НапримСр, константа 1.57E+5LΠ±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ long, Π° ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° 3.22f — Ρ‚ΠΈΠΏ float.

Π›ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ константы Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² Π°ΠΏΠΎΡΡ‚Ρ€ΠΎΡ„Π°Ρ…, ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°:

Β· ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Π΅: '8', 'g', 'K',…;

Β· ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для задания ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… символов ΠΈ ΠΏΠΈΡˆΡƒΡ‚ся Π² ΠΏΠ°Ρ€Π΅ с ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ (ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ «ΡΠ»Π΅Ρˆ»)): ' ', 'a', '', ' ', '', ''',…; Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… констант прСдставлСно Π½ΠΈΠΆΠ΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 1.5.

Β· числовыС ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для задания ASCII-ΠΊΠΎΠ΄ΠΎΠ² символов): 'xhhh' (h — ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Π°Ρ Ρ†ΠΈΡ„Ρ€Π°), 'ooo'(o — Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Π°Ρ Ρ†ΠΈΡ„Ρ€Π°). НапримСр, комбинация клавиш «Ctrl+Z» ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ΄ ASCII, Ρ€Π°Π²Π½Ρ‹ΠΉ 26; Π΅ΠΌΡƒ соотвСтствуСт 032 Π’ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС ΠΈ 0x1A Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ.

Π’Π°Π±Π»ΠΈΡ†Π° 1 ΠšΠΎΠ΄Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ.

Код Б++.

НазначСниС.

ДСсятичный ΠΊΠΎΠ΄ ASCII.

ШСстнадцатСричный ΠΊΠΎΠ΄ ASCII.

Новая строка.

0xA.

Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ табуляция.

0x9.

v.

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ табуляция.

0xB.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ.

0x8.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ.

0xD.

a.

Π—Π²ΡƒΠΊ прСдупрСТдСния.

0x7.

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ косая Ρ‡Π΅Ρ€Ρ‚Π°,.

0x5C.

'.

ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Π°Ρ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°, '.

0x27.

" .

Двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°, «.

0x22.

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ константы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ: «ΠœΠΈΡ€», «ΠžΡˆΠΈΠ±ΠΊΠ°», «Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ элСмСнта», «Press any key…», … Для хранСния строковой константы трСбуСтся Π½Π° 1 Π±Π°ΠΉΡ‚ памяти большС, Ρ‡Π΅ΠΌ число символов ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ Π² ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠΉ константС. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π°ΠΉΡ‚ трСбуСтся для хранСния ΠΊΠΎΠ΄Π°-ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° ΠΊΠΎΠ½Ρ†Π° строки (000, ΠΈΠ»ΠΈ). ДопускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ символы Π²Π½ΡƒΡ‚Ρ€ΠΈ строковых констант, Π½ΠΎ Π² ΡΡ‚ΠΎΠΌ случаС ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π±Π΅Π· апострофов: «ΠΠΎΠΌΠ΅Ρ€ элСмСнта», «Π”Π°Π½Π½Ρ‹Π΅: вторая строка», ΠΈ Ρ‚. Π΄.

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ константы Ρ‚ΠΈΠΏΠ° wchar_t Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€Π΅Ρ„иксом L, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: L" Year" .

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ (Π½Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅) константы (ΠΈΠΌΠ΅Π½Π½Ρ‹Π΅ константы) — это константы, прСдставлСнныС ΠΈΠΌΠ΅Π½Π΅ΠΌ; ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ Ρ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ слова const (ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово constΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ»ΠΈ просто — спСцификатором). НапримСр:

const int a = 10;

const float x = 1.75;

const double y = 1.54E+12;

const char s = 'A';

const char Ch[] = «ΡΡ‚Ρ€ΠΎΠΊΠ° символов» ;

const wchar_t a[ ] = L" Year" ;

Как Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ константы ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСльзя.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ с ΡƒΠΊΠ°Π·Π°Ρ‚Слями. ΠŸΡ€ΠΈ этом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ 2 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΈ Ρ‚ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΎΠ±Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ константами:

const char* p1 = «number»; // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρƒ.

char const* p2 = «number»; // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρƒ.

char *const p3 = «number»; // константный ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.

const char *const p4 = «number»; // константный ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.

// Π½Π° ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρƒ ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ строки Π² ΡΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ (Ρ‚ΠΈΠΏ ΠΈ ΡΠ»ΠΎΠ²ΠΎ const ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами).

ΠžΡ‚ΠΌΠ΅Ρ‡Ρƒ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ *const являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ объявлСния указатСля, наряду с ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ *.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ константой, выступаСт ΠΊΠ°ΠΊ константа ΠΏΡ€ΠΈ доступС ΠΊ Π½Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ:

char s[] = «number»; // массив символов.

const char* p = s; // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρƒ.

s[0] = 'z'; // измСняСм ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ошибки Π½Π΅Ρ‚).

p[0] = 'z'; // Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½ΠΎ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅:

// ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ константу Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ (Π½Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅) константы ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ срСдствами прСпроцСссора, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ использования Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #define:

#define DT 0.17 // опрСдСляСм Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ константу.

#define ST «Press any key…» // опрСдСляСм ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ константу ПослС этого Π² Ρ‚СкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° DT ΠΈ ST. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π΄ компиляциСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Π΅Π·Π΄Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ ΠΈΠΌΠ΅Π½Π° DT ΠΈ ST Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ 0.17 ΠΈ «Press any key…» .

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ (Π½Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅) цСлочислСнныС константы ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° enum.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово const относится ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… cv-спСцификаторов. Π’Ρ‚ΠΎΡ€ΠΎΠΉ спСцификатор опрСдСляСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом volatile. константа ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ volatile ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡΡ‡Π΅ΠΉΠΊΠ΅ памяти ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, Π΄Π°ΠΆΠ΅ Ссли Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π΅Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ³ΠΎ. НапримСр, ΠΏΡƒΡΡ‚ΡŒ имССтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ значСния, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, Π° Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, измСняСт содСрТимоС области памяти.

Если компилятор ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ нСсколько Ρ€Π°Π· Π½Π° ΠΏΡ€ΠΎΡ‚яТСнии выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚ΠΎ Π²ΠΌΠ΅ΡΡ‚ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ нСсколько Ρ€Π°Π· ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ поиск Ρ‚Π°ΠΊΠΎΠ³ΠΎ значСния, компилятор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€. Π­Ρ‚ΠΎ нСсколько ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ΄Π½Π°ΠΊΠΎ такая оптимизация ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими случаями Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ.

Если пСрСмСнная Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π° со ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ volatile, компилятор ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΆΠ΅ спСцификатора volatile Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ компилятору, Ρ‡Ρ‚ΠΎ такая оптимизация Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°Π΅Ρ‚ся.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ