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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Borland C++

ΠšΡƒΡ€Ρ Π»Π΅ΠΊΡ†ΠΈΠΉΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ΡΠ°ΠΌΡ‹Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… областях чСловСчСской Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π½Π΅ΠΎΠ±Ρ…одимости ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ надСТности всСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Одним ΠΈΠ· Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ языков программирования стало ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ уровня Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ВСория Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… исходит ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΈΠΏ Π΄Π°Π½Π½ΠΎΠ³ΠΎ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Borland C++ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Borland C++

ВСксты Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… Π² ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠΎΠΌ государствСнном унивСрситСтС экономики, статистики ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Π’ Ρ‚Скстах Π»Π΅ΠΊΡ†ΠΈΠΉ рассмотрСны основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ языка Π‘++ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΡ‹ программирования Borland C++. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π·Π°Π΄Π°Ρ‡ΠΈ для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌ с ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… языков программирования. ПособиС ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для студСнтов ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ «ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½Π°Ρ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°» ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано студСнтами Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния Π‘++.

1. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

1.1 Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования

ВСхнология программирования — это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (написания) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ примСнСния этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π².

На Ρ€Π°Π½Π½ΠΈΡ… этапах развития программирования, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ писались Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, какая-Π»ΠΈΠ±ΠΎ тСхнология программирования отсутствовала. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ состояли Π² ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Написанию ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π»ΠΎ составлСниС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ схСмы, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ составлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ — Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ стали Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΡ… ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½Ρ‹Π΅ части ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ объСдинялась Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΡˆΡ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ — большая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ»Π°ΡΡŒ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€-ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Одна ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ являлась Π³Π»Π°Π²Π½ΠΎΠΉ, ΠΈ Ρ Π½Π΅Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ 1958 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ языки программирования, Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ ΠΈ ΠΠ»Π³ΠΎΠ»-58. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅ состояла ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ — ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΠΠ»Π³ΠΎΠ»Π΅-58 ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ вСрсии АлголС-60 прСдставляла собой Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅, Π½ΠΎ ΠΈΠΌΠ΅Π»Π° Π±Π»ΠΎΡ‡Π½ΡƒΡŽ структуру, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΡƒΡŽ Π³Π»Π°Π²Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ для Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° обСспСчивали Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΈΡ… ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠ΅Ρ€Π²Ρ‹Π΅ компиляторы для Алгола ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ транслируСтся сразу вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Π°Ρ трансляция ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π»Π°ΡΡŒ.

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

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π² ΡƒΠ³Π»ΡƒΠ±Π»Π΅Π½ΠΈΠΈ структурирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ стало Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ структурноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² Ρ†Π΅Π»ΠΎΠΌ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ каноничСских структур: Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… участков, Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ. Появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ тСкст, Ρ‡Ρ‚ΠΎ повысило ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π° программистов ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ структурности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ трСбования ΠΊ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ нСзависимости ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², использованиС Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ ΠΈΠ»ΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, стало ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, процСсс описания Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ шагов, Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… ΠΎΡ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… исходных Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΠΈΡΠΊΠΎΠΌΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ стали Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ языки программирования, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ класс Π·Π°Π΄Π°Ρ‡: Π½Π° ΡΠΈΡΡ‚Π΅ΠΌΡ‹ управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ‚. Π΄.

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ трансляторов всС большС внимания стало ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΡŽ ошибок Π² ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹Ρ… тСкстах ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, обСспСчивая этим сокращСниС Π·Π°Ρ‚Ρ€Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ΡΠ°ΠΌΡ‹Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… областях чСловСчСской Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π½Π΅ΠΎΠ±Ρ…одимости ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ надСТности всСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Одним ΠΈΠ· Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ языков программирования стало ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ уровня Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ВСория Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… исходит ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΈΠΏ Π΄Π°Π½Π½ΠΎΠ³ΠΎ опрСдСляСт мноТСство Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, допустимых Π½Π°Π΄ этим Π΄Π°Π½Π½Ρ‹ΠΌ. Π”Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Ρ€ΡΠ΄Π΅ случаСв ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ явно прСдставлСно Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΡ‚Π΅ΠΏΠ΅Π½ΠΈ выполнСния пСрСчислСнных Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ языка программирования. Π‘Ρ‚Ρ€Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ языка программирования ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ языка Паскаль, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считаСтся строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком, хотя ΠΈ Π² Π½Π΅ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСявныС прСобразования Ρ‚ΠΈΠΏΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π΅Π»ΠΎΠ³ΠΎ Π² Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ позволяСт Π΅Ρ‰Π΅ ΠΏΡ€ΠΈ трансляции исходного тСкста Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ошибки использования Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΡ‚ΠΈΠΌ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ВмСстС с Ρ‚Π΅ΠΌ строгая типизация сковывала свободу программиста, затрудняла ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² прСобразования Π΄Π°Π½Π½Ρ‹Ρ…, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠŸΠ°ΡΠΊΠ°Π»Π΅ΠΌ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ язык Π‘ΠΈ, Π² Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ стСпСни ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΡΠΈΡΡ‚Π΅ΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚носящийся ΠΊ ΡΠ»Π°Π±ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языкам.

ВсС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ языки программирования, нСсмотря Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ Π² ΡΠΈΠ½Ρ‚аксисС ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… словах, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ каноничСскиС структуры: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания, Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ Ρ€Π°Π·Π²Π΅Ρ‚влСния. Π’ΠΎ Π²ΡΠ΅Ρ… соврСмСнных языках ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ (Π±Π°Π·ΠΎΠ²Ρ‹Π΅) Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ†Π΅Π»Ρ‹Π΅ ΠΈ Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ арифмСтичСскиС Ρ‚ΠΈΠΏΡ‹, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, строковый Ρ‚ΠΈΠΏ), имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Π² Ρ‚ΠΎΠΌ числС массивов ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ (записСй). Для арифмСтичСских Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, для Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдусмотрСна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ опСрация присваивания ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ обращСния ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π°. ВмСстС с Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ большая ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Π±Π»ΠΈΠ·ΠΎΡΡ‚ΡŒ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ΠΈ. НапримСр, Ссли Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ комплСксными числами ΠΈΠ»ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ явно присутствовали ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ слоТСния, вычитания, умноТСния ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° комплСксного числа, слоТСния, вычитания, умноТСния ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. РСшСниС этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ нСсколькими путями:

— ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ΠΌ языка программирования, содСрТащСго ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса Π·Π°Π΄Π°Ρ‡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ подмноТСства этого языка. Π’Π°ΠΊΠΎΠΉ язык ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ языком-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ. На Ρ€ΠΎΠ»ΡŒ языка-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΠΎΠ²Π°Π» язык ΠŸΠ›/1, оказавшийся Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ слоТным, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ описаниС. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ описания, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π»ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠŸΠ›/1 ΠΊΠ°ΠΊ Π² Π—Π°ΠΏΠ°Π΄Π½ΠΎΠΉ Π•Π²Ρ€ΠΎΠΏΠ΅, Ρ‚Π°ΠΊ ΠΈ Π² Π‘Π‘Π‘Π .

— ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠ³ΠΎ языка, содСрТащСго нСбольшоС ядро ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π΅ язык Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ класса Π·Π°Π΄Π°Ρ‡. Π’Π°ΠΊΠΎΠΉ язык Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ языком-ядром. Как язык-ядро Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ языки Π‘ΠΈΠΌΡƒΠ»Π° ΠΈ ΠΠ»Π³ΠΎΠ»-68, Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ распространСния, Π½ΠΎ ΠΎΠΊΠ°Π·Π°Π²ΡˆΠΈΠ΅ большоС влияниС Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ явился ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, рассматриваСмый Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅.

1.2. Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΎΠΏΠΈΡ€Π°ΡŽΡ‚ΡΡ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ полоТСния:

— ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСт собой модСль Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса, части Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°.

— ΠœΠΎΠ΄Π΅Π»ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° ΠΈΠ»ΠΈ Π΅Π³ΠΎ части ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ описана ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

— ΠžΠ±ΡŠΠ΅ΠΊΡ‚ описываСтся Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (дСйствий), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

— Π’заимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ осущСствляСтся посылкой ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сообщСний ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствий, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, измСнСния состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

— ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, описанныС ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ дСйствий ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой класс ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния языка программирования класс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΎΠ³ΠΎ, Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ — ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΎΠ΅ этого Ρ‚ΠΈΠΏΠ°. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ программистом собствСнных классов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π·Π°Π΄Π°Ρ‡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… самого класса Π·Π°Π΄Π°Ρ‡ (ΠΏΡ€ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΈΠΌΠ΅Π½ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Ρ… дСйствий).

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

ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² часто ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру. НапримСр, класс «Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚», ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ абстрактного студСнта, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ основой для построСния классов «Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ 1 курса», «Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ 2 курса» ΠΈ Ρ‚. Π΄., ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ всСми свойствами студСнта Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ свойствами, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ студСнта ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ курса. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ интСрфСйса с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ±Ρ‰Π΅Π³ΠΎ класса «ΠžΠΊΠ½ΠΎ» ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΊΠΎΠ½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… сообщСний, ΠΎΠΊΠΎΠ½ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. ΠΏ. Π’ Ρ‚Π°ΠΊΠΈΡ… иСрархичСских структурах ΠΎΠ΄ΠΈΠ½ класс ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ для Π΄Ρ€ΡƒΠ³ΠΈΡ…, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚ Π½Π΅Π³ΠΎ классов. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСми свойствами Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ собствСнными свойствами, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ‚Π΅ ΠΆΠ΅ Ρ‚ΠΈΠΏΡ‹ сообщСний ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса ΠΈ Π½Π° ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ смысл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ говорят, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса наслСдуСт всС свойства своСго Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.

НСкоторыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π½Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ для прямого воздСйствия ΠΈΠ·Π²Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр, Π²ΠΎ Π²Ρ€Π΅ΠΌΡ двиТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-автомобиля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΡ€Π³Π°Π½ΠΎΠ² управлСния (Ρ€ΡƒΠ»Π΅Π²ΠΎΠ΅ колСсо, ΠΏΠ΅Π΄Π°Π»ΠΈ Π³Π°Π·Π°, сцСплСния ΠΈ Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°, Ρ€Ρ‹Ρ‡Π°Π³ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡) ΠΈ Π΅ΠΌΡƒ нСдоступСн Ρ†Π΅Π»Ρ‹ΠΉ ряд ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… состояниС двигатСля ΠΈ Π°Π²Ρ‚омобиля Π² Ρ†Π΅Π»ΠΎΠΌ.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ языки программирования, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Ρ‚. Π΅. ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ описаниС классов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Одним ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‚Π°ΠΊΠΈΡ… языков стал язык SmallTalk Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… классов, Π° ΠΎΠ±Ρ‰Π°Ρ систСма классов строится ΠΊΠ°ΠΊ иСрархичСская структура Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов.

ΠžΠΏΡ‹Ρ‚ программирования ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любой мСтодичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ слСпо с ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Π­Ρ‚ΠΎ относится ΠΈ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ. БущСствуСт ряд Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°, ΠΊ Ρ‚Π°ΠΊΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ относятся, Π² Ρ‡Π°ΡΡ‚ности, Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ модСлирования, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π½ΠΈ ΠΊ Ρ‡Π΅ΠΌΡƒ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΈΠ·Π»ΠΈΡˆΠ½ΠΈΡ… Π·Π°Ρ‚Ρ€Π°Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π°, Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚. Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ наибольшСС распространСниС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки программирования, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ мСтодологиями. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… программирования ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ограничиваСтся срСдствами интСрфСйса с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Visual FoxPro Ρ€Π°Π½Π½ΠΈΡ… вСрсий).

НаиболСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² Π½Π°ΡΡ‚оящСС врСмя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ языками ΡΠ²Π»ΡΡŽΡ‚ΡΡ Паскаль с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ Π‘ΠΈ++, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Π΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ содСрТатся Π² Π‘ΠΈ++.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки программирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ языками, ΠΈΡ… ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ рСгулярно ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‚ΡΡ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ся. БлСдствиСм этого развития ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹Π΅ различия Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… языках компиляторов Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСм программирования. .НаиболСС распространСнными Π² Π½Π°ΡΡ‚оящСС врСмя ΡΠ²Π»ΡΡŽΡ‚ΡΡ систСмы программирования Microsoft C++, Microsoft Visual C++ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΡ‹ программирования Ρ„ΠΈΡ€ΠΌΡ‹ Borland International. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π² Π΄Π°Π½Π½ΠΎΠΌ пособии излагаСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ΅ программирования Borland C++. Π­Ρ‚ΠΎ связано ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Π² ΡΡ‚ΠΎΠΉ систСмС программирования Ρ€Π°Π·Π²ΠΈΡ‚ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅ΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, компилятор, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ связСй (ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ) ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ срСдства.

2. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ ΡΠ·Ρ‹ΠΊΠ΅ Π‘ΠΈ

2.1 НазначСниС Π‘ΠΈ, историчСскиС свСдСния

Π―Π·Ρ‹ΠΊ Π‘ΠΈ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 70-Π΅ Π³ΠΎΠ΄Ρ‹ ΠΊΠ°ΠΊ язык систСмного программирования. ΠŸΡ€ΠΈ этом ΡΡ‚Π°Π²ΠΈΠ»Π°ΡΡŒ Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ язык, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ΄Π΅ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ программирования ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ спСцифичСских ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² систСмного программирования. Π’Π°ΠΊΠΎΠΉ язык ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ слоТныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅, сравнимом с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅, Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎ быстрСС. Π­Ρ‚ΠΈ Ρ†Π΅Π»ΠΈ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π±Ρ‹Π»ΠΈ достигнуты. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ компиляторов для Π‘ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ‹ Π½Π° Π‘ΠΈ, опСрационная систСма UNIX <οΏ½Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ написана Π½Π° Π‘ΠΈ. НСдостатком Π‘ΠΈ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡŒ низкая Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ·-Π·Π° отсутствия контроля Ρ‚ΠΈΠΏΠΎΠ². ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Π΅Π»ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒ программирования Π‘ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ нСявныС прСобразования Ρ‚ΠΈΠΏΠΎΠ², Ρ€Π΅ΡˆΠΈΠ»Π° эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ лишь частично.

На ΠΎΡΠ½ΠΎΠ²Π΅ Π‘ΠΈ Π² 80-Π΅ Π³ΠΎΠ΄Ρ‹ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ язык Π‘ΠΈ++, Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ «Π‘ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ». Π‘ΠΈ++ практичСски Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ язык Π‘ΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ срСдствами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Рабочая вСрсия Π‘ΠΈ++ появилась Π² 1983 Π³. Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ язык ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ нСсколько вСрсий ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° стандартов Π‘ΠΈ ΠΈ Π‘ΠΈ++.

Рядом Ρ„ΠΈΡ€ΠΌ, производящих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ компиляторы для Π‘ΠΈ ΠΈ Π‘ΠΈ++. БистСмы программирования Ρ„ΠΈΡ€ΠΌΡ‹ Borland International Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ срСди Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΈΡ€ΠΌ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго комплСксным ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌΡΡ Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒ программирования ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ΄ ΠΎΠ±Ρ‰ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для Π²Π²ΠΎΠ΄Π° исходных тСкстов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, компилятор, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ связСй ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… срСдств. Π’ 1989 Π³. ΡΡ‚ΠΎΠΉ Ρ„ΠΈΡ€ΠΌΠΎΠΉ Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° систСма Turbo C++, Π²ΠΊΠ»ΡŽΡ‡Π°Π²ΡˆΠ°Ρ компилятор Π‘ΠΈ++, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС DOS, с 1992 Π³. Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ся систСмы Borland C++, содСрТащиС компиляторы Π‘ΠΈ++ для DOS ΠΈ WINDOWS, с 1997 Π³. ΠΏΠΎΡΡ‚авляСтся вСрсия Borland C 5.0, содСрТащая компиляторы Π‘ΠΈ++ для WINDOWS, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ компилятор для WINDOWS Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ 16-разрядныС, Ρ‚Π°ΠΊ ΠΈ 32-разрядныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠŸΠ­Π’Πœ с ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°ΠΌΠΈ i486 ΠΈ Pentium.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘ΠΈ/Π‘ΠΈ++ прСдставляСт собой ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько исходных Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ трансляции (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹) ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ связСй (ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° исходных Ρ„Π°ΠΉΠ»ΠΎΠ²: Ρ„Π°ΠΉΠ»Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π€Π°ΠΉΠ»Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² содСрТат описания Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΠ΅ΠΉ, ΠΈΡ… ΠΈΠΌΠ΅Π½Π°, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .h, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, stdio.h. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ содСрТат описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚, ΠΈΡ… ΠΈΠΌΠ΅Π½Π° принято Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ .c ΠΈΠ»ΠΈ .cpp, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, myprog.cpp. Один ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» содСрТит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… «Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ», ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, константы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π°Ρ… этого Ρ€Π°Π·Π΄Π΅Π»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ±Π·ΠΎΡ€ срСдств Π‘ΠΈ/Π‘ΠΈ++, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½Ρ‹Ρ… с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ Π‘ΠΈ++.

2.2 Алфавит, Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

Алфавит языка Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ практичСски всС символы, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ ΠŸΠ­Π’Πœ:

— Π»Π°Ρ‚инскиС Π±ΡƒΠΊΠ²Ρ‹ A… Z, a… z;

— Ρ†ΠΈΡ„Ρ€Ρ‹ 0…9;

— Π·Π½Π°ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ:

{ } [ ] (). , -> & * + - ~ ! / %? :; = < > | # ^

НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ комбинациями символов, значСния символов ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Ρ€ΡΠ΄Π΅ случаСв зависят ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Скста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½Ρ‹.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ (ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅) Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹: Π΄Π°Π½Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (вСщСствСнныС).

Π”Π°Π½Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ Ρ†Π΅Π»Ρ‹ΠΌΠΈ со Π·Π½Π°ΠΊΠΎΠΌ (signed) ΠΈ Ρ†Π΅Π»Ρ‹ΠΌΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ° (unsigned). По Ρ‡ΠΈΡΠ»Ρƒ разрядов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для прСдставлСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ (int), ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Ρ†Π΅Π»Ρ‹Π΅ (short int) ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ (long int). Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (char) Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ†Π΅Π»Ρ‹Π΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ со Π·Π½Π°ΠΊΠΎΠΌ ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ°.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСсятичных Ρ†ΠΈΡ„Ρ€, Ρ‚ΠΈΠΏ константы зависит ΠΎΡ‚ Ρ‡ΠΈΡΠ»Π° Ρ†ΠΈΡ„Ρ€ Π² Π·Π°ΠΏΠΈΡΠΈ константы ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΊΠΎΠ½Ρ†Π΅ константы Π±ΡƒΠΊΠ² L ΠΈΠ»ΠΈ l (Ρ‚ΠΈΠΏ long), U ΠΈΠ»ΠΈ u (Ρ‚ΠΈΠΏ unsigned) ΠΈΠ»ΠΈ ΠΈΡ… ΡΠΎΡ‡Π΅Ρ‚ания:

321 — константа Ρ‚ΠΈΠΏΠ° int,

5326u — константа Ρ‚ΠΈΠΏΠ° unsigned int,

45 637 778 — константа Ρ‚ΠΈΠΏΠ° long int,

2746L — константа Ρ‚ΠΈΠΏΠ° long int.

Π¦Π΅Π»Ρ‹Π΅ константы ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния, Π² ΡΡ‚ΠΎΠΌ случаС ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€Π° 0, число ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹ 0 … 7:

0777 — константа Ρ‚ΠΈΠΏΠ° int,

453 377 — константа Ρ‚ΠΈΠΏΠ° long.

Π¦Π΅Π»Ρ‹Π΅ константы ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния, Π² ΡΡ‚ΠΎΠΌ случаС запись константы начинаСтся с ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² 0x ΠΈΠ»ΠΈ 0X:

0x45 °F — константа Ρ‚ΠΈΠΏΠ° int,

0xFFFFFFFF — константа Ρ‚ΠΈΠΏΠ° unsigned long.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ Ρ‚ΠΈΠΏΠ° char всСгда Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ константы задаСтся Π»ΠΈΠ±ΠΎ Π·Π½Π°ΠΊΠΎΠΌ ΠΈΠ· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° символов, Π»ΠΈΠ±ΠΎ Ρ†Π΅Π»ΠΎΠΉ константой, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ обратная косая Ρ‡Π΅Ρ€Ρ‚Π°: 'A', '33', '42', 'x1B'. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ряд ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ константы Ρ‚ΠΈΠΏΠ° char:

'n' - новая строка,

't' - Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ табуляция,

'v' - Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ табуляция,

'r' - ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ,

'f' - ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ страницы,

'a' - Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал,

''' - одиночная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° (апостроф),

'" ' - двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°,

'\' - обратная косая Ρ‡Π΅Ρ€Ρ‚Π°.

ВСщСствСнныС числа ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ значСниями ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ²: float, double, long double. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡ‚ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² зависит ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π­Π’Πœ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π°. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ вСщСствСнных Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² Π΅ΡΡ‚СствСнной ΠΈΠ»ΠΈ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ double, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 15.31, 1.43E-3, 2345.1e4. ΠŸΡ€ΠΈ нСобходимости Ρ‚ΠΈΠΏ константы ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, записав Π² ΠΊΠΎΠ½Ρ†Π΅ суффикс f ΠΈΠ»ΠΈ F Π΄Π»Ρ Ρ‚ΠΈΠΏΠ° float, суффикс l ΠΈΠ»ΠΈ L Π΄Π»Ρ Ρ‚ΠΈΠΏΠ° long double.

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

int i, j, k; // Π’Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° int Π±Π΅Π· явной ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

double x=1, y=2; //Π”Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° double с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями 1 ΠΈ 2

char c1='0'; // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° char, Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — ΠΊΠΎΠ΄ Π»ΠΈΡ‚Π΅Ρ€Ρ‹ 0

ВСкст, записанный Π² ΡΡ‚ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… послС Π·Π½Π°ΠΊΠΎΠ² //, являСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ ΠΈ ΡΠ»ΡƒΠΆΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для докумСнтирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ строку тСкста ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°Π΅Ρ‚ся Π² Ρ‚Скстах ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π‘ΠΈ++. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ нСсколько строк, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ скобки /* ΠΈ */.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ спСцификаторов класса памяти Π²ΠΎ Π²Π½Π΅ΡˆΠ½Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов extern, static ΠΈΠ»ΠΈ typedef, Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ extern ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ, Π° Π·Π΄Π΅ΡΡŒ даСтся информация ΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ‚ΠΈΠΏΠ΅ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ static ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия объявляСмого ΠΈΠΌΠ΅Π½ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΎΠΌ, Ссли объявлСниС содСрТится Π² Π±Π»ΠΎΠΊΠ΅.

Если объявлСниС Π΄Π°Π½Π½ΠΎΠ³ΠΎ содСрТится Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (локальноС объявлСниС), Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ спСцификаторы класса памяти register ΠΈΠ»ΠΈ auto. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ register носит Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€, компилятор пытаСтся Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ этот класса Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ процСссора, Ссли Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ свободныС рСгистры. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ auto принимаСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ явно Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ся, ΠΎΠ½ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ класса auto Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ стСкС ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ typedef слуТит для присвоСния ΠΈΠΌΠ΅Π½ΠΈ описываСмому Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅.

Наряду с ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹ΡˆΠ΅ константами-Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈΡ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π² Π‘ΠΈ ΠΈ Π‘ΠΈ++ прСдусмотрСны константы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ собствСнныС ΠΈΠΌΠ΅Π½Π° — ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы. Π’ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ константы присутствуСт ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ const, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

const double Pi = 3.141 592 653;

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ объявлСн с ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»Π΅ΠΌ const, нСльзя ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Π΅ΠΌ Π±Ρ‹Π»ΠΎ установлСно ΠΏΡ€ΠΈ объявлСнии ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ объявлСнии константы являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

Наряду с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ Ρ†Π΅Π»Ρ‹ΠΌΠΈ ΠΈ Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠΎΠ², опрСдСляСмых программистом: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ссылки, Π°Π³Ρ€Π΅Π³Π°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ пСрСчислимого Ρ‚ΠΈΠΏΠ°.

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ примСняСтся для Π΄Π°Π½Π½Ρ‹Ρ… Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ соотвСтствуСт собствСнноС имя-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ Ρ†Π΅Π»ΠΎΠ΅ число, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΈΠΌΠ΅Π½ΠΈ. ОбъявлСниС пСрСчислимого Ρ‚ΠΈΠΏΠ° строится ΠΏΠΎ ΡΡ…Π΅ΠΌΠ΅:

enum ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ {список пСрСчислСния} Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€Ρ‹-ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹;

Π—Π΄Π΅ΡΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π°Π΄Π°Π΅Ρ‚ имя пСрСчислимого Ρ‚ΠΈΠΏΠ°, список пСрСчислСния состоит ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»Π΅ΠΉ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒ задаСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ†Π΅Π»Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° char ΠΈΠ»ΠΈ int, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

enum color { RED, GREEN, BLUE } en_color;

enum lex_type { CNST, VAR, OPER=3, FUNC };

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСчислитСля Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, большСС Π½Π° 1. Π’ΠΎΠΎΠ±Ρ‰Π΅ любой ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° 1 большС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ. Π’ Π‘ΠΈ/Π‘ΠΈ++ принято Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ пСрСчислитСлСй прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ. ИмСна пСрСчислитСлСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы Π»ΠΈΠ±ΠΎ для присвапивания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ пСрСчислимого Ρ‚ΠΈΠΏΠ°.

Π’ Π‘ΠΈ/Π‘ΠΈ++ для ссылок Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° слуТат ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ — это Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΎΠ³ΠΎ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся адрСс Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΎΠ³ΠΎ. ΠŸΡ€ΠΈ объявлСнии указатСля ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ записываСтся Π·Π½Π°ΠΊ *. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ адрСсом Π΄Π°Π½Π½ΠΎΠ³ΠΎ, для получСния адрСса слуТит опСрация & (ампСрсСнд):

double y;

double *px, *py = &y;

Для ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния, слоТСния указатСля с Ρ†Π΅Π»Ρ‹ΠΌ числом, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ опСрация индСксирования (опСрация []).

Для обращСния ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ выполняСтся опСрация разымСнования, обозначаСмая Π·Π½Π°ΠΊΠΎΠΌ * (Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ°), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, *py = 7.5; .

ΠŸΡ€ΠΈ объявлСнии указатСля ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ const, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

const int cc = 20;

const int *pc = &cc; // МоТно ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ адрСсом константы.

double *const delta = 0.001; // Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ — константа ΠšΡ€ΠΎΠΌΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Π‘ΠΈ++ имССтся Ρ‚ΠΈΠΏ «ΡΡΡ‹Π»ΠΊΠ° Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ», Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ имя (псСвдоним). Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ прСдставлСниС ссылки Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ указатСля, Ρ‚. Π΅. Π² Π²ΠΈΠ΄Π΅ адрСса ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ΅ записываСтся Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½ΠΈ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° ссылки всСгда инициализируСтся Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ относится ссылка. ΠŸΡ€ΠΈ объявлСнии ссылки Π·Π° ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚ΠΈΠΏΠ° записываСтся Π·Π½Π°ΠΊ & (ампСрсСнд):

int ii;

int& aii = ii;

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ описании ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ aii = 5; ΠΈ ii = 5; эквивалСнтны.

Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… любого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ массивы. ΠŸΡ€ΠΈ объявлСнии массива Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€Π΅-ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ массива задаСтся число элСмСнтов массива Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках:

int a [ 5 ]; // Массив ΠΈΠ· ΠΏΡΡ‚ΠΈ элСмСнтов Ρ‚ΠΈΠΏΠ° int

Π˜Π½Π΄Π΅ΠΊΡΡ‹ элСмСнтов массива всСгда Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 0, индСкс послСднСго элСмСнта Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ мСньшС числа элСмСнтов Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. Массив ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ списком Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках:

int b [ 4 ] = { 1, 2, 3, 4 };

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ списка ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ всС элСмСнты массива, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ число элСмСнтов массива, ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ компилятором:

int c [ ] = { 1, 2, 3 }; // Массив ΠΈΠ· Ρ‚Ρ€Π΅Ρ… элСмСнтов Ρ‚ΠΈΠΏΠ° int

ΠœΠ°ΡΡΠΈΠ²Ρ‹ с Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ 2 ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ массивы массивов ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСрСния указываСтся число элСмСнтов:

double aa [ 2 ] [ 2 ] = { 1, 2, 3, 4 }; // ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 2 * 2

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Ρ‚ΠΈΠΏΠ° char ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ строковым Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Ρ… символов, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Если строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π» Π½Π΅ ΡƒΠΌΠ΅Ρ‰Π°Π΅Ρ‚ся Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ символом «» ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ с Π½Π°Ρ‡Π°Π»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки. Π’ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π΅ C++ прСдусмотрСна ΠΈ Π΄Ρ€ΡƒΠ³Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ записи Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… записанных подряд строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ². Если ΠΌΠ΅ΠΆΠ΄Ρƒ строковыми Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ Π½Π΅Ρ‚ символов, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΡΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ компилятором Π² ΠΎΠ΄ΠΈΠ½.

ΠŸΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° добавляСтся символ '', Ρ‚. Π΅. Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ‚. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ Π΄Π»Ρ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ указатСля Π½Π° Ρ‚ΠΈΠΏ char:

char str1 [ 11 ] = «Π­Ρ‚ΠΎ строка» ,

str2 [ ] = «Π Π°Π·ΠΌΠ΅Ρ€ этого массива опрСдСляСтся»

" числом Π·Π½Π°ΠΊΠΎΠ² Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ + 1″ ;

char *pstr = «Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ строкой» ;

Имя массива Π² Π‘ΠΈ/Π‘ΠΈ++ являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ-константой, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΌΡΡ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ индСкс, Ρ€Π°Π²Π½Ρ‹ΠΉ Π½ΡƒΠ»ΡŽ. Для обращСния ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρƒ массива указываСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ массива ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ элСмСнта Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, c[2], aa[0][1].

2.3 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ

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

struct ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

{ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ‡Π»Π΅Π½ΠΎΠ² } Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€Ρ‹_ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹;

Π’Π°ΠΊΠΎΠ΅ объявлСниС выполняСт Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ структурный Ρ‚ΠΈΠΏ, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ этого Ρ‚ΠΈΠΏΠ°.

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова struct являСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ структурного Ρ‚ΠΈΠΏΠ°. Имя Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚ΠΎΠ³Π΄Π° Ρ‚ΠΈΠΏ Π±ΡƒΠ΄Π΅Ρ‚ бСзымянный ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… частях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ этого Ρ‚ΠΈΠΏΠ°. Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€Ρ‹_ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ структурного Ρ‚ΠΈΠΏΠ°, Ρ‚. Π΅. Π΄Π°Π½Π½Ρ‹Π΅ описанного Ρ‚ΠΈΠΏΠ°, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΡΡ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€Ρ‹_ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π² ΡΡ‚ΠΎΠΌ случаС объявлСниС описываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΈΠΏ структуры.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ Ρ‚ΠΎΡ‡ΠΊΡƒ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Ρ‚Π°ΠΊ:

struct Point_struct // Имя структуры

{ int x, y; } // Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ‡Π»Π΅Π½ΠΎΠ² структуры

point1, *ptr_to_point, arpoint [3]; // Π”Π°Π½Π½Ρ‹Π΅ структурного Ρ‚ΠΈΠΏΠ° Π§Π»Π΅Π½Ρ‹ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹) структуры ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ скалярными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, указатСлями, массивами ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ структурного Ρ‚ΠΈΠΏΠ°. НапримСр, для описания структурного Ρ‚ΠΈΠΏΠ° «ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ со ΡΡ‚ΠΎΡ€ΠΎΠ½Π°ΠΌΠΈ, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ осям ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

struct Rect1

{Point p1; // ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π°

Point p2; // ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡƒΠ³Π»Π°

};

struct Rect2

{Point p [ 2 ];

};

struct Rect3

{Point p; // Π›Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ»

int width; // Π¨ΠΈΡ€ΠΈΠ½Π°

int high; // Высота ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

};

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ описании Ρ‡Π»Π΅Π½ΠΎΠ² структуры Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Ρ‚ΠΈΠΏΠΎΠ², прСдусмотрСн Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ объявлСния структуры, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя структурного Ρ‚ΠΈΠΏΠ°. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ элСмСнт Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°, содСрТащий ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π»Π΅Π²ΡƒΡŽ ΠΈ ΠΏΡ€Π°Π²ΡƒΡŽ Π²Π΅Ρ‚Π²ΠΈ Π΄Π΅Ρ€Π΅Π²Π° ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ структуру Ρ‚ΠΈΠΏΠ° Value, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡƒΠ·Π»Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

struct Value;

struct Tree_element

{Value * val;

Tree_element *left, *right;

};

Π§Π»Π΅Π½Π°ΠΌΠΈ структур ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ поля, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΠΎΠ»Π΅ памяти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (int ΠΈΠ»ΠΈ unsigned int) размСщаСтся нСсколько Ρ†Π΅Π»Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… мСньшСй Π΄Π»ΠΈΠ½Ρ‹. ΠŸΡƒΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅ синтаксичСского Ρ€Π°Π·Π±ΠΎΡ€Π° описаниС лСксСмы содСрТит Ρ‚ΠΈΠΏ лСксСмы (Π΄ΠΎ ΡˆΠ΅ΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) ΠΈ ΠΏΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ лСксСмы Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° (Π΄ΠΎ 2000 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈΠΉ). Для прСдставлСния значСния Ρ‚ΠΈΠΏΠ° лСксСмы достаточно Ρ‚Ρ€Π΅Ρ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… разрядов (Ρ‚Ρ€Π΅Ρ… Π±ΠΈΡ‚), Π° Π΄Π»Ρ прСдставлСния чисСл ΠΎΡ‚ 0 Π΄ΠΎ 2000 — 11 Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… разрядов (11 Π±ΠΈΡ‚). ОписаниС структуры, содСрТащСй свСдСния ΠΎ Π»Π΅ΠΊΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

struct Lexema

{unsigned int type_lex: 3;

unsigned int num_lex :11;

};

Π”Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ с Ρ†Π΅Π»Ρ‹ΠΌ числом послС ΠΈΠΌΠ΅Π½ΠΈ Ρ‡Π»Π΅Π½Π° структуры ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π° Ρ†Π΅Π»ΠΎΠ΅ число Π·Π°Π΄Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ поля Π² Π±ΠΈΡ‚Π°Ρ….

ОбъСдинСниС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ структуру, всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ адрСса. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, объСдинСниС Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ содСрТит ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Для размСщСния объСдинСния Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ выдСляСтся участок, достаточный для размСщСния Ρ‡Π»Π΅Π½Π° объСдинСния самого большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ объСдинСния Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ полю памяти ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ значСния Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

ОписаниС объСдинСния строится ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΆΠ΅ схСмС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ структуры, Π½ΠΎ Π²ΠΌΠ΅ΡΡ‚ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова struct ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ слово union, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, объСдинСниС uword позволяСт ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ памяти Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ unsigned int, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ массив ΠΈΠ· Π΄Π²ΡƒΡ… элСмСнтов Ρ‚ΠΈΠΏΠ° unsigned char.

union uword

{unsigned int u;

unsigned char b [ 2 ];

};

Описания Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹Ρ… программистом, Π² Ρ‚ΠΎΠΌ числС структур ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ достаточно большими, поэтому Π² Π‘ΠΈ/Π‘ΠΈ++ прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ присваивания Ρ‚ΠΈΠΏΠ°ΠΌ собствСнных ΠΈΠΌΠ΅Π½ (синонимов), достигая ΠΏΡ€ΠΈ этом ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ наглядности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… тСкстов. Π‘ΠΈΠ½ΠΎΠ½ΠΈΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ° вводится с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом typedef ΠΈ ΡΡ‚роится ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ объявлСниС, Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… Π² ΡΡ‚ΠΎΠΌ случаС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ синонимы описанных Ρ‚ΠΈΠΏΠΎΠ². Π‘ΠΈΠ½ΠΎΠ½ΠΈΠΌΡ‹ ΠΈΠΌΠ΅Π½ Ρ‚ΠΈΠΏΠΎΠ² принято Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² объявлСния синонимов ΠΈΠΌΠ΅Π½ Ρ‚ΠΈΠΏΠΎΠ².

typedef struct { double re, im } COMPLEX;

typedef int *PINT;

ПослС Ρ‚Π°ΠΊΠΈΡ… объявлСний синоним ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ спСцификатор Ρ‚ΠΈΠΏΠ°:

COMPLEX ca, *pca; // пСрСмСнная Ρ‚ΠΈΠΏΠ° COMPLEX ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° COMPLEX

PINT pi; // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° int

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

2.4 ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡ

НСсмотря Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (Ρ†Π΅Π»Ρ‹Π΅ ΠΈ Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ арифмСтичСскиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹) Π² ΡΠ·Ρ‹ΠΊΠ΅ Π‘ΠΈ++ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСпосрСдствСнно соотвСтствуСт ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ. Как ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ… языках программирования, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слуТат для построСния Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ прСдставляСт собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΈ Π·Π½Π°ΠΊΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΡΠ»ΡƒΠΆΠΈΡ‚ для вычислСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ значСния.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, константы, ΠΈ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌΠΈ выраТСниями. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, Ρ‚Π°ΠΊΠΆΠ΅ рассматриваСтся ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ΅. КаТдая опСрация ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ использованиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² (Ρ†Π΅Π»Ρ‹Ρ…, вСщСствСнных, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ). ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ присваивания Π² Π‘ΠΈ++ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π² ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π΅ΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρƒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ извСстСн адрСс этой памяти. Π’Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ L-выраТСниями (ΠΎΡ‚ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ leftΠ»Π΅Π²Ρ‹ΠΉ), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ записаны Π² Π»Π΅Π²ΠΎΠΉ части ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния выраТСния зависит ΠΎΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’ Π‘ΠΈ++ слоТная систСма ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ 16 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 2.1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π‘ΠΈ++ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΡ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ², назначСния ΠΈ ΡΡ…Π΅ΠΌΡ‹ записи.

Π’Π°Π±Π»ΠΈΡ†Π° 2.1

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚

Π—Π½Π°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

НазначСниС

Π‘Ρ…Π΅ΠΌΠ°

: :

Доступ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ области

:: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ)

имя области:: имя_Ρ‡Π»Π΅Π½Π°_структуры

->

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ‡Π»Π΅Π½Ρƒ структуры ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ

ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ -> имя_Ρ‡Π»Π΅Π½Π°_структуры

.

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ‡Π»Π΅Π½Ρƒ структуры ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ структуры

имя_структуры. имя_Ρ‡Π»Π΅Π½Π°_структуры

[ ]

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρƒ массива

ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ [ индСкс ]

()

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ

имя_Ρ‚ΠΈΠΏΠ° (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) ΠΈΠ»ΠΈ (Ρ‚ΠΈΠΏ) Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

()

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

функция (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹)

++

АвтоувСличСниС

++ L-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ

L-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅++

-;

ΠΠ²Ρ‚ΠΎΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅

— L-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ

L-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅-;

~

Π‘ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

~ Ρ†Π΅Π»ΠΎΠ΅_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

!

ЛогичСскоС ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅

! Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

;

ΠžΠ΄Π½ΠΎΠΌΠ΅ΡΡ‚Π½Ρ‹ΠΉ минус

— Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

ΠžΠ΄Π½ΠΎΠΌΠ΅ΡΡ‚Π½Ρ‹ΠΉ плюс

+ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

&

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ адрСса

& L-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

*

Π Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ указатСля

* ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

new

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ динамичСской памяти

new Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΎΠ³ΠΎ

delete

ОсвобоТдСниС памяти

delete ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

delete []

ОсвобоТдСниС памяти для массива

delete [] ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

sizeof

Π Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½ΠΎΠ³ΠΎ

sizeof Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Π Π°Π·ΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ

sizeof (имя Ρ‚ΠΈΠΏΠ°)

*

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ * Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Π”Π΅Π»Π΅Π½ΠΈΠ΅

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ / Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

%

ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°Ρ†Π΅Π»ΠΎ

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ % Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

->*

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ‡Π»Π΅Π½Ρƒ структуры ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ

ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ_Π½Π°_структуру ->* имя_Ρ‡Π»Π΅Π½Π°_структуры-указатСля

.*

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ‡Π»Π΅Π½Ρƒ структуры ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ структуры

имя_структуры .*

имя_Ρ‡Π»Π΅Π½Π°_структуры-указатСля

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ + Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

;

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

<<

Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ

Ρ†Π΅Π»ΠΎΠ΅_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ << Ρ†Π΅Π»ΠΎΠ΅_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

>>

Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ

Ρ†Π΅Π»ΠΎΠ΅_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ >> Ρ†Π΅Π»ΠΎΠ΅_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

<

МСньшС

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ < Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

<=

МСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ <= Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

>

Π‘ΠΎΠ»ΡŒΡˆΠ΅

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ > Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

>=

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ >= Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

==

Π Π°Π²Π½ΠΎ

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ == Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

НС Ρ€Π°Π²Π½ΠΎ

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ≠ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

&

ΠŸΠΎΡ€Π°Π·Ρ€ΡΠ΄Π½Π°Ρ ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ & Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

^

ΠžΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ равнозначности

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ^ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

|

ΠŸΠΎΡ€Π°Π·Ρ€ΡΠ΄Π½Π°Ρ Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ | Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

&&

ЛогичСскоС «Π˜»

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ && Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

| |

ЛогичСскоС «Π˜Π›Π˜»

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ | | Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

? :

УсловноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅? Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1: Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2

=

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ присваиваниС

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ = Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

@=

БоставноС присваиваниС, Π·Π½Π°ΠΊ @ - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π·Π½Π°ΠΊΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ * / % + - << >> & ^ |

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ @= Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ слСдования

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Рассмотрим особСнности примСнСния основных ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ «: :» (Π΄Π²Π° двоСточия) примСняСтся для уточнСния ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΡΠ»ΡƒΡ‡Π°Π΅, ΠΊΠΎΠ³Π΄Π° Π² ΡΡ‚ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ извСстны Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎ имя объявлСно глобально, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° двоСточия, Ρ‚ΠΎ ΡΡ‚ΠΎ глобальноС имя.

Для обращСния ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ структуры ΠΈΠ»ΠΈ объСдинСния ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ структурного Π΄Π°Π½Π½ΠΎΠ³ΠΎ, Π»ΠΈΠ±ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ Π΄Π°Π½Π½ΠΎΠ΅. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ‡Π»Π΅Π½Π° структуры состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ самой структуры ΠΈ ΠΈΠΌΠ΅Π½ΠΈ Ρ‡Π»Π΅Π½Π° структуры, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Π·Π° ΠΈΠΌΠ΅Π½Π΅ΠΌ указатСля Π½Π° ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ставится Π·Π½Π°ΠΊ -> (стрСлка), Π° Π·Π° Π½ΠΈΠΌ имя Ρ‡Π»Π΅Π½Π° структуры. ΠŸΡƒΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ объявлСн структурный Ρ‚ΠΈΠΏ AnyStruct, содСрТащий ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ member Ρ‚ΠΈΠΏΠ° int ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹

AnyStruct s1; // Π”Π°Π½Π½ΠΎΠ΅ s1 Ρ‚ΠΈΠΏΠ° AnyStruct

AnyStruct *ps1 = &s1; // Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π΄Π°Π½Π½ΠΎΠ΅ Ρ‚ΠΈΠΏΠ° AnyStruct

Π’ΠΎΠ³Π΄Π° ΠΊ Ρ‡Π»Π΅Π½Ρƒ структуры member ΠΈΠ· s1 ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΊ s1. member ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ps1->member.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‡Π»Π΅Π½ΠΎΠΌ структуры ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Π² Π‘ΠΈ++ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ разымСнования Ρ‚Π°ΠΊΠΎΠ³ΠΎ указатСля, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ .* ΠΈ ->. ΠŸΡƒΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‡Π»Π΅Π½ΠΎΠ² структуры AnyStruct являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ pp1 Π½Π° Π΄Π°Π½Π½ΠΎΠ΅ Ρ‚ΠΈΠΏΠ° int. Π’ΠΎΠ³Π΄Π° выраТСния s1.*pp1 ΠΈ ps1->*pp1 обСспСчат доступ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ pp1 ΠΈΠ· s1.

Π’Ρ‹ΡˆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ имя массива Π² Π‘ΠΈ/Π‘ΠΈ++ интСрпрСтируСтся ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ-константа Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива. Для разымСнования указатСля, Ρ‚. Π΅. для доступа ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π° ΡΡ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ слуТит опСрация * (Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ°). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ объявлСн массив

int Array1 [ 10 ];

Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ *Array1=0 слуТит для присвоСния Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту массива. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту массива, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ индСкс элСмСнта, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Array1. Π­Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ эквивалСнтно Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ *(Array1 + 3), Ρ‚. Π΅. трСбуСтся сначала ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Array1 Π½Π° 3 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. ΠŸΡ€ΠΈ слоТСнии указатСля Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° T Ρ Ρ†Π΅Π»Ρ‹ΠΌ числом N Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ указатСля увСличиваСтся Π½Π° N, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π΄Π»ΠΈΠ½Ρƒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° T. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ индСкс ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΠΌΠ΅Π½ массивов, Π½ΠΎ ΠΈ Π΄Π»Ρ любого Ρ‚ΠΈΠΏΠ° указатСля, ΠΊΡ€ΠΎΠΌΠ΅ указатСля Π½Π° Ρ‚ΠΈΠΏ void:

int *pint = &Array[ 4 ]; pint [ 2 ] =1;

Π’ ΡΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ pint ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ адрСсом пятого элСмСнта массива Array, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠ΅Π΄ΡŒΠΌΠΎΠΌΡƒ элСмСнту этого массива присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ индСкса ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π‘ΠΈ++ являСтся Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком, Π² Π½Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ явныС ΠΈ Π½Π΅ΡΠ²Π½Ρ‹Π΅ прСобразования Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. НСявныС прСобразования Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ двумСстных арифмСтичСских опСрациях ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ся стандартными арифмСтичСскими прСобразованиями. Π­Ρ‚ΠΈ прСобразования Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

— Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ long double, Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ прСобразуСтся Π² Ρ‚ΠΈΠΏ long double;

— ΠΈΠ½Π°Ρ‡Π΅, Ссли ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ double, Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ прСобразуСтся Π² Ρ‚ΠΈΠΏ double;

— ΠΈΠ½Π°Ρ‡Π΅, Ссли ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ float, Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ прСобразуСтся Π² Ρ‚ΠΈΠΏ float;

— ΠΈΠ½Π°Ρ‡Π΅, Ссли ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ unsigned long int, Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ прСобразуСтся Π² Ρ‚ΠΈΠΏ unsigned long int;

— ΠΈΠ½Π°Ρ‡Π΅, Ссли ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ long int, >Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ прСобразуСтся Π² Ρ‚ΠΈΠΏ long int;

— ΠΈΠ½Π°Ρ‡Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ стандартныС прСобразования для Ρ†Π΅Π»Ρ‹Ρ…, ΠΏΡ€ΠΈ этом Ρ‚ΠΈΠΏΡ‹ char, short int ΠΈ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ поля Ρ‚ΠΈΠΏΠ° int ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² Ρ‚ΠΈΠΏ int, Π·Π°Ρ‚Π΅ΠΌ, Ссли ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ больший Ρ€Π°Π·ΠΌΠ΅Ρ€ (больший Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ), Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ прСобразуСтся ΠΊ Ρ‚ΠΈΠΏΡƒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°;

— Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ int.

Π―Π²Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ΠΎ Π² Π΄Π²ΡƒΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° совмСстима с Π‘ΠΈ, Π² Π½Π΅ΠΉ Π·Π° ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚ΠΈΠΏΠ° Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках записываСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ с ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΡ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. Имя Ρ‚ΠΈΠΏΠ° Π² ΡΡ‚ΠΎΠΌ случаС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ описатСлСй, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, (long int *) pp ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅ΡΠ΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΎΠ³ΠΎ pp Π² Ρ‚ΠΈΠΏ указатСля Π½Π° long int. Вторая Ρ„ΠΎΡ€ΠΌΠ° прСобразования Ρ‚ΠΈΠΏΠ° записываСтся ΠΊΠ°ΠΊ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ этом имя Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, int (x). Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ явного прСобразования Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся L-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ автоувСличСния ΠΈ Π°Π²Ρ‚ΠΎΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ (++ ΠΈ —) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСфиксными ΠΈ ΠΏΠΎΡΡ‚фиксными ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ (ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅) своСго ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Ρ‚. Π΅. Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ++x эквивалСнтно x = x +1, Π° —x эквивалСнтно x = x — 1. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡΠ½Π°Ρ опСрация выполняСтся Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π±ΡƒΠ΄Π΅Ρ‚ использован Π² Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠΈ выраТСния, Π° ΠΏΠΎΡΡ‚фиксная опСрация выполняСтся послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π±ΡƒΠ΄Π΅Ρ‚ использован Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вычислСния выраТСния

++x * 2 + y— *3

пСрСмСнная x ΡΠ½Π°Ρ‡Π°Π»Π° увСличиваСтся Π½Π° 1, Π° Π·Π°Ρ‚Π΅ΠΌ умноТаСтся Π½Π° 2, пСрСмСнная y ΡΠ½Π°Ρ‡Π°Π»Π° умноТаСтся Π½Π° 3, Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° 1. Если ΠΏΠ΅Ρ€Π΅Π΄ вычислСниСм этого выраТСния x ΠΈ y Π±Ρ‹Π»ΠΈ Ρ€Π°Π²Π½Ρ‹ 1, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 5, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ пСрСмСнная x ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ y — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ автоувСличСния ΠΈ Π°Π²Ρ‚ΠΎΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ всСгда Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ значСния своих ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ L-значСниями.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ ~ (Ρ‚ΠΈΠ»ΡŒΠ΄Π°) примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ‚ всС Π±ΠΈΡ‚Ρ‹ своСго ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 0 Π½Π° 1, Π° Π±ΠΈΡ‚Ρ‹ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 1 Π½Π° 0.

ЛогичСскоС ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ (опСрация !) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ссли ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π½Π΅ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1, Ссли ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ «ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΡ‚Π½Ρ‹ΠΉ +» ΠΈ «ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΡ‚Π½Ρ‹ΠΉ -» ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ матСматичСский смысл, Π·Π½Π°ΠΊ + Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ значСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°, Π·Π½Π°ΠΊ — мСняСт Π·Π½Π°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΉ.

Для получСния адрСса ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°, ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ L-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, примСняСтся опСрация & (ампСрсанд). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΎΠ³ΠΎ. Π Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ указатСля, Ρ‚. Π΅. ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ значСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π° Π½Π΅Π³ΠΎ обСспСчиваСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ * (Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ°). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ разымСнования являСтся L-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

Π’ Π‘ΠΈ++ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ размСщСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ памяти ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡ динамичСских Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ new Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ° ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для размСщСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ памяти, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π΄Π°Π½Π½ΠΎΠ΅. ΠŸΡ€ΠΈ нСвозмоТности Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ опСрация new Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL — ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ константу, ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ практичСски Π²ΠΎ Π²ΡΠ΅Ρ… компиляторах Π‘ΠΈ ΠΈ Π‘ΠΈ++. ΠŸΠ°ΠΌΡΡ‚ΡŒ, Π²Ρ‹Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ new, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡƒΠΊΠ°Π·Π°Π² Π·Π° ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚ΠΈΠΏΠ° скалярного Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно ΠΏΠΎΠ·ΠΆΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ примСнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ new :

int *ip = new int; /* созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° int ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ указатСля Π½Π° Π½Π΅Π³ΠΎ */

int *ip2 = new int (2); // Ρ‚ΠΎ ΠΆΠ΅ с ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΎΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния 2

inr *intArray = new int [ 10 ]; // массив ΠΈΠ· 10 элСмСнтов Ρ‚ΠΈΠΏΠ° int

double **matr = new double [ m ] [ n ]; // ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈΠ· m ΡΡ‚Ρ€ΠΎΠΊ ΠΈ n ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ² Π”Π°Π½Π½ΠΎΠ΅, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ΅ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ памяти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ new, удаляСтся ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ delete с ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ-ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ new, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

delete intArray; delete ip2;

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ delete Ρ‚ΠΎΠ»ΡŒΠΊΠΎ освобоТдаСт Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ указатСля-ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ послС освобоТдСния памяти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ для обращСния ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ нСльзя.

Π Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ sizeof. ΠžΠΏΠ΅Ρ€Π°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любого Ρ‚ΠΈΠΏΠ°, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΈΠΏΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ поля. Если ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ являСтся имя Ρ‚ΠΈΠΏΠ°, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² ΡΠΊΠΎΠ±ΠΊΠΈ. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ size_t, это Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ опрСдСляСтся Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ компилятора, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚ΠΈΠΏΡƒ size_t соотвСтствуСт unsigned int. Π Π°Π·ΠΌΠ΅Ρ€ массива Ρ€Π°Π²Π΅Π½ числу Π±Π°ΠΉΡ‚, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… массивом Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€ строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° — это число Π·Π½Π°ΠΊΠΎΠ² Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ +1, Ρ‚. Π΅. Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ‚ учитываСтся ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Ρ‹ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ sizeof являСтся константой.

ДвумСстныС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ умноТСния (*), дСлСния (/), получСния остатка ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°Ρ†Π΅Π»ΠΎ (%), слоТСния (+) ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚ания (-) ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ смысл ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. Если ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ арифмСтичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ стандартныС арифмСтичСскиС прСобразования ΠΈ Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ опрСдСляСтся ΠΎΠ±Ρ‰ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² послС стандартных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 7/2 Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3 Ρ‚ΠΈΠΏΠ° int, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π½Π΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ int, Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 7.0/2 даст Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ 3.5 Ρ‚ΠΈΠΏΠ° double, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот Ρ‚ΠΈΠΏ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π΄Π²ΡƒΡ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (<, <=, >, >=) Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² арифмСтичСского Ρ‚ΠΈΠΏΠ° ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ указатСлями Π½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² арифмСтичСского Ρ‚ΠΈΠΏΠ° Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ значСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ стандартныС арифмСтичСскиС прСобразования ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ся 1 Ρ‚ΠΈΠΏΠ° int, Ссли ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ выполняСтся (истинно), ΠΈΠ»ΠΈ 0, Ссли ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся (Π»ΠΎΠΆΠ½ΠΎ). Когда ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π²Π° указатСля, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ зависит ΠΎΡ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния (== ΠΈ ≠) Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ мСньший ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚.

ВыраТСния ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ логичСскими связками && (ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ, логичСскоС ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅) ΠΈ | | (Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ, логичСскоС слоТСниС). Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ логичСских связок ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ скалярныС значСния ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ && Π΄Π°Π΅Ρ‚ Ρ€Π΅Π·Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ€Π°Π²Π½Ρ‹ΠΉ 1 Ρ‚ΠΈΠΏΠ° int, Ссли ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ | | Π΄Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ€Π°Π²Π½Ρ‹ΠΉ 0, Ссли значСния ΠΎΠ±ΠΎΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Π½ΡƒΠ»Π΅Π²Ρ‹Π΅. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ сокращСнная Ρ„ΠΎΡ€ΠΌΠ° вычислСния значСния логичСских связок, Ссли Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ && ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π½Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅Ρ‚ся ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ся 0, Ссли Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ | | ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π½Π΅ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π½Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅Ρ‚ся ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1.

Как ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, присваиваниС, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌ = Π² Π‘ΠΈ/Π‘ΠΈ++ рассматриваСтся ΠΊΠ°ΠΊ опСрация ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ присвоСно Π»Π΅Π²ΠΎΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρƒ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ присваивания вычисляСтся справа Π½Π°Π»Π΅Π²ΠΎ, Ρ‚. Π΅. сначала вычисляСтся присваиваСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π·Π°Ρ‚Π΅ΠΌ выполняСтся присваиваниС. Π­Ρ‚ΠΎ позволяСт Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ выраТСния Π²ΠΈΠ΄Π° x = y = z = 1 для установки ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ нСскольким ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. МоТно, хотя это ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ‚ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡ с ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ эффСктом Π²ΠΈΠ΄Π° (x = 2) * (y = 3) + (z = 4). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этого выраТСния Π±ΡƒΠ΄Π΅Ρ‚ 24, Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ x, y ΠΈ z ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ значСния.

ΠšΡ€ΠΎΠΌΠ΅ простого присваивания имССтся Π½Π°Π±ΠΎΡ€ составных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ присваивания, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… присваиваниС совмСщаСтся с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ двумСстной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. Π—Π°ΠΏΠΈΡΡŒ x += y ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ x = x + y.

Для Ρ†Π΅Π»Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сдвига Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ e1 << e2 Π±ΠΈΡ‚Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π²Π»Π΅Π²ΠΎ Π½Π° e1 разрядов ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. ΠžΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€Π°Π²Ρ‹Π΅ разряды Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нулями. ΠŸΡ€ΠΈ сдвигС Π²ΠΏΡ€Π°Π²ΠΎ (e1 >> e2) Ссли e1 ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ unsigned, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π»Π΅Π²Ρ‹Π΅ разряды Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нулями, Π° ΠΏΡ€ΠΈ e1 Ρ‚ΠΈΠΏΠ° signed Π² ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ…ся Π»Π΅Π²Ρ‹Ρ… разрядах повторяСтся Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ разряд.

Над Ρ†Π΅Π»Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ допустимы ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поразрядного логичСского умноТСния, логичСского слоТСния ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ»ΠΈ (отрицания равнозначности). Π’ ΡΡ‚ΠΈΡ… опСрациях ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΈΡ‚ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ выполняСтся Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… разрядов ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². НапримСр, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выраТСния (x >> (p — n +1)) & (~(~0 << n)) Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ†Π΅Π»ΠΎΠ³ΠΎ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ x n Π±ΠΈΡ‚ΠΎΠ², начиная с Π±ΠΈΡ‚Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ p, ΠΈ ΡΠ΄Π²ΠΈΠ³ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π²ΠΏΡ€Π°Π²ΠΎ, Ρ‚. Π΅. Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ n-разрядного Ρ†Π΅Π»ΠΎΠ³ΠΎ, хранящСгося Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌ словС x Π½Π°Ρ‡ΠΈΠ½Π°Ρ с p-Π³ΠΎ разряда.

Π’ Π‘ΠΈ/Π‘ΠΈ++ имССтся конструкция, которая называСтся условным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. УсловноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ строится ΠΏΠΎ ΡΡ…Π΅ΠΌΠ΅:

условиС? Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1: Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ условия ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ любоС скалярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Если Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния условия Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ всСго выраТСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1, ΠΏΡ€ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ условия Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСго выраТСния опрСдСляСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ2. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ условного выраТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΎΠ±Π° арифмСтичСского Ρ‚ΠΈΠΏΠ°, Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹ΠΌΠΈ структурами ΠΈΠ»ΠΈ объСдинСниями, Π»ΠΈΠ±ΠΎ указатСлями ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π»ΠΈΠ±ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ NULL ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ void*. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ x > 0? 1: 0 Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 1, Ссли x Π±ΠΎΠ»ΡŒΡˆΠ΅ 0, ΠΈ 0 Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

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

x = 2, e * 3, x +1 Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3 ΠΈ ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ x ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ умноТСния e * 3 Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован.

2.5 ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π‘ΠΈ++

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ — это синтаксичСскиС конструкции, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ дСйствия, выполняСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π’ Π‘ΠΈ/Π‘ΠΈ++ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹-выраТСния, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π°, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°. Бинтаксис Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² содСрТит выраТСния, ΠΈΠ³Ρ€Π°ΡŽΡ‰ΠΈΠ΅ Ρ€ΠΎΠ»ΡŒ условий, Π² Π·Π°Π²ΠΈΡΠΈΡΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ нСвыполнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выбираСтся Ρ‚Π° ΠΈΠ»ΠΈ иная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π‘ΠΈ Π½Π΅Ρ‚ Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ условий ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΡŽΠ±Ρ‹Π΅ выраТСния, Π΄Π°ΡŽΡ‰ΠΈΠ΅ скалярныС значСния, ΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ считаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ΠΌ, Ссли это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Π½ΡƒΠ»Ρ, ΠΈ Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌ, Ссли ΠΎΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ. НСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² ΡΠΎΡΡ‚Π°Π²Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ… Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅) скобки. ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ†Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (ΠΊΡ€ΠΎΠΌΠ΅ составного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°) слуТит Ρ‚ΠΎΡ‡ΠΊΠ° с Π·Π°ΠΏΡΡ‚ΠΎΠΉ, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ Π² ΡΡ‚ΠΎΠΌ случаС Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

ΠŸΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана ΠΌΠ΅Ρ‚ΠΊΠ° Π² Π²ΠΈΠ΄Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ. ΠœΠ΅Ρ‚ΠΊΠ° слуТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для указания Π΅Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°.

НаиболСС простым являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой ΠΏΠΎΠ»Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΊΠ½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с Π·Π°ΠΏΡΡ‚ΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

x = 3; y = (x +1) * t; i++;

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ΅ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, вычисляСтся, Π½ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ тСряСтся ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°-выраТСния состоит Π² ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктах, ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… вычислСниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ присваивания, автоувСличСния ΠΈ Π°Π²Ρ‚ΠΎΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ.

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

if (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-условиС) ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

if (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-условиС) ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€-1 else ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€-2

Π’ ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° вычисляСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-условиС ΠΈ, Ссли Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Π½ΡƒΠ»Ρ, выполняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ся Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий.

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