ВсС ΠΎ Ρ‚ΡŽΠ½ΠΈΠ½Π³Π΅ Π°Π²Ρ‚ΠΎ

Π―Π·Ρ‹ΠΊ программирования C (Π‘ΠΈ). Π›Π°Π±Ρ‹ ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Сгэ БистСмы программирования Π½Π° си ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

практичСский курс

Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅?

Π’ своС врСмя (1991-1992 Π³ΠΎΠ΄Π°), Π²Ρ‹Π±Ρ€Π°Π² язык Π‘ΠΈ Π² качСствС основного языка программирования для матСматичСских классов, Π°Π²Ρ‚ΠΎΡ€ столкнулся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ отсутствия Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ школьникам. Π­Ρ‚ΠΎ Π²Ρ‹Π½ΡƒΠ΄ΠΈΠ»ΠΎ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой конспСкт Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π°Π·Π²Π°Ρ‚ΡŒ Β«ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ курс программирования Π½Π° Π‘ΠΈ Β» β€” Π² Π½Π΅Π³ΠΎ вошли Ρ‚Π΅ свСдСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ Π°Π²Ρ‚ΠΎΡ€Ρƒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. ΠœΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½ΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ прСподавания ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ конспСкт Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вострСбован ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ школьниками, Ρ‚Π°ΠΊ ΠΈ выпускниками.

Π’ качСствС срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ бСсплатно распространяСмая ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Dev-C++ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ компилятор GCC .

Автор Π±ΡƒΠ΄Π΅Ρ‚ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ Π·Π° ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ содСрТания ΠΈ оформлСния этих ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ². Если Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΠ»ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ прСдлоТСния, замСчания, ΠΆΠ°Π»ΠΎΠ±Ρ‹, ΠΏΡ€ΠΎΡΡŒΠ±Ρ‹ ΠΈ заявлСния, ΠΏΠΈΡˆΠΈΡ‚Π΅ .

Π›ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ΅ соглашСниС

  1. 1) публикация ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π² любой Ρ„ΠΎΡ€ΠΌΠ΅, Π² Ρ‚ΠΎΠΌ числС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Web-сайтах;
  2. 2) распространСниС Π½Π΅ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ²;
  3. 3) Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π² сборники Π½Π° Π»ΡŽΠ±Ρ‹Ρ… носитСлях ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ;
  4. 4) ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ коммСрчСской Π²Ρ‹Π³ΠΎΠ΄Ρ‹ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ использования ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ².

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ приняли условия этого Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ соглашСния.

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ

ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ распространяСтся свободно Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PDF . Для просмотра трСбуСтся бСсплатный просмотрщик Acrobat Reader . ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ курса условно Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° 4 части:

  1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° языкС Π‘ΠΈ (860 Кб) 29.03.2014
    Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ основных конструкций языка ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.
  2. XΡ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… (792 Кб) 21.11.2013
    Π―Π·Ρ‹ΠΊ Π‘ΠΈ: массивы, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, структуры, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки, структуры, рСкурсия.
  3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Π‘ΠΈ (937 Кб) 01.03.2014
    ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ проСктирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, структурноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, цСлочислСнныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, числСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
  4. ДинамичСскиС структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² языкС Π‘ΠΈ (666 Кб) 11.06.2009
    Бписки, стСки, Π΄Π΅Ρ€Π΅Π²ΡŒΡ, Π³Ρ€Π°Ρ„Ρ‹.

ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

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

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°

Основная Π·Π°Π΄Π°Ρ‡Π° β€” ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ учащихся с основными конструкциями языка Π‘ΠΈ : Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ, условными ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ. Π’Π΅ΡΡŒΠΌΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², связанных с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-сСрвис Антона Π”Π΅Π½ΠΈΠΊΠΈΠ½Π° .

8 класс

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ (Π² скобках ΡƒΠΊΠ°Π·Π°Π½Π° Ρ‡Π°ΡΡ‚ΡŒ конспСкта): ΠœΠ°ΡΡΠΈΠ²Ρ‹ (II), Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ (II), Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки (II), Π’Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (III), ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (III) . ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами, Π² Ρ‚ΠΎΠΌ числС поиска, сортировки ΠΈ Ρ‚.ΠΏ. ДаСтся понятиС ΠΎΠ± эффСктивности Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

9 класс

ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Π‘ΠΈ . УчащиСся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅, Π² Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ учатся ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° экранС, знакомятся с прСобразованиями систСм ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ, знакомятся с числСнными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, учатся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ€Π°Π·Π΄Π΅Π»Ρ‹ 1-2 части III). Одно ΠΈΠ· Π·Π°Π΄Π°Π½ΠΈΠΉ посвящСно использованию ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ для вычислСния ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ слоТной Ρ„ΠΈΠ³ΡƒΡ€Ρ‹. Из Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (II), ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк (II) . Вводится понятиС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π½ΠΈΠΌΠΈ.

10 класс

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΡ языка Π‘ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ β€” Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ (II), РСкурсия (II), Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ (II) . ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ языка Паскаль Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ языка программирования. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π° тСорСтичСских занятиях Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ Π½Π° Π΄Π²ΡƒΡ… языках.

11 класс

Π˜Π·ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ особСнности языков, сколько Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ β€” ЧислСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (III), ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (III), ДинамичСскиС структуры Π΄Π°Π½Π½Ρ‹Ρ… (IV) .

Π—Π΄Π΅ΡΡŒ прСдставлСны большС Ρ‡Π΅ΠΌ 200 бСсплатных ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° Π‘++. Онлайн курсы программирования с нуля для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π³Π΄Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ основы ΠΈ тонкости языка программирования C++. БСсплатноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ с практичСскими заданиями ΠΈ тСстами. НСваТно, ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π»ΠΈ Π’Ρ‹ ΠΎΠΏΡ‹Ρ‚ ΠΈΠ»ΠΈ Π½Π΅Ρ‚, эти ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π’Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C++ Π² Ρ€Π°Π·Π½Ρ‹Ρ… срСдах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: Visual Studio, Code::Blocks, Xcode ΠΈΠ»ΠΈ Eclipse.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΠΉ. ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ ΠΊΠ°ΠΊ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² (Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²), Ρ‚Π°ΠΊ ΠΈ для Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ…. ΠžΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ всё с нуля ΠΈ Π΄ΠΎ самых Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΈ это всё Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ бСсплатно!

Π’Π°ΠΊΠΆΠ΅ рассматриваСтся пошаговоС созданиС ΠΈΠ³Ρ€Ρ‹ Π² Π‘++, графичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° SFML ΠΈ большС 70 Π·Π°Π΄Π°Π½ΠΈΠΉ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ своих Π½Π°Π²Ρ‹ΠΊΠΎΠ² программирования. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ бонусом являСтся .

Π“Π»Π°Π²Π° β„–0. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅. Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π“Π»Π°Π²Π° β„–1. ΠžΡΠ½ΠΎΠ²Ρ‹ C++

Π“Π»Π°Π²Π° β„–2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ основныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² C++

Π“Π»Π°Π²Π° β„–3. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² C++

Π“Π»Π°Π²Π° β„–4. ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² C++

Π“Π»Π°Π²Π° β„–5. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ выполнСния ΠΊΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π¦ΠΈΠΊΠ»Ρ‹, вСтвлСния Π² C++

Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ДСннисом Π ΠΈΡ‚Ρ‡ΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ 1970-Ρ… Π³ΠΎΠ΄ΠΎΠ² для создания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX. Π‘ΠΈ остаСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ языком для написания систСмного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΈ CΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для написания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ

Π―Π·Ρ‹ΠΊ программирования C ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС особСнности:

  • ЀокусированиС Π½Π° ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ программирования, с удобствами для программирования Π² структурированном стилС, это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ плюс для изучСния C .
  • Доступ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΡƒΡ€ΠΎΠ²Π½ΡŽ Ρ‡Π΅Ρ€Π΅Π· использованиС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ для обозначСния мСста Π² памяти.
  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ всСгда ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π° Π½Π΅ ΠΏΠΎ ссылкС.
  • ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости лСксичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π½ΠΎ Π½Π΅ поддСрТиваСтся замыкания ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.)
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ, Π½ΠΎ Π½Π΅ строго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹.
  • ИспользованиС прСпроцСссора языка, прСпроцСссор C , для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ макросов ΠΈ Π² Ρ‚ΠΎΠΌ числС нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π°.
  • «О» ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для всСх ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ языка программирования C гарантируСтся ANS / ISO C99 C89/90 ΠΈ Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° компилятор (ΠΈΠ»ΠΈ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π°Ρ срСда), Π²Ρ‹Π΄Π°Π΅Ρ‚ диагностику. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ². Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ΄Π°, написанного Π½Π° языкС программирования Π‘ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт стандарту.
НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, Π² соотвСтствии со стандартом, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

#include #include int main (void) { char *s = "Hello World!\\n"; strcpy (s, s+1); /* вСроятно, Ρ‡Ρ‚ΠΎ программист Ρ…ΠΎΡ‚Π΅Π» ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ ΠΈΠ· строки S = S +1, */ return 0; }

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΡΡ‚ΠΈΠ»ΡŒ отступов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ мСняСтся Π² зависимости ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ программистов. Π‘ΠΌ. ΡΡ‚ΠΈΠ»ΡŒ отступов для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ основы программирования.
"НСопрСдСлСнноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅" ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ всС, Π² Ρ‚ΠΎΠΌ числС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡƒΠΌΠ°Π» программист, ΠΈΠ»ΠΈ выдавая Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ошибки ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС, ΠΈΠ»ΠΈ вызывая ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ сбои Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° происходит сорок Π²Ρ‚ΠΎΡ€ΠΎΠΉ запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠ»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сбой, ΠΊΠΎΠ³Π΄Π° пСрСзагруТаСтся ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΈ Ρ‚.Π΄., Π΄ΠΎ бСсконСчности.
НСкоторыС компиляторы Π½Π΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· стандартов Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ вСрсиСй компилятора ΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ (Windows, Linux ΠΈΠ»ΠΈ Mac).
Π›ΡŽΠ±Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, написанная Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° стандартном языкС программирования C Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, которая ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ C Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ компилятора.
Π₯отя C ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ называСтся языком высокого уровня, это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ язык "высокого уровня" ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ассСмблСром, Π½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΈΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ, Ρ‡Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования. Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΎΠ½ Π΄Π°Π΅Ρ‚ программисту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ содСрТимым памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π‘ Π½Π΅ Π΄Π°Π΅Ρ‚ инструмСнтов для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³Ρ€Π°Π½ΠΈΡ† массива ΠΈΠ»ΠΈ автоматичСской сборки мусора.
Руководство управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ обСспСчиваСт программисту Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ свободу Π² настройкС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ для Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠ°ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ устройств. Однако, ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ позволяСт случайно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ с ошибками, Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΈΠ· ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°. НСкоторыС инструмСнты Π±Ρ‹Π»ΠΈ созданы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ программистам ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этих ошибок, Π² Ρ‚ΠΎΠΌ числС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для провСдСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³Ρ€Π°Π½ΠΈΡ† массива ΠΈ сбор мусора, ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ исходного ΠΊΠΎΠ΄Π°. ΠŸΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ΅ использованиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π½Π° Π‘ с нуля ΠΈ содСрТащих ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ пСрСполнСния Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΡ‡Π΅Π½ΡŒ распространСно Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… вирусов ΠΈ ΠΎΡ‡Π΅Π½ΡŒ популярно Ρƒ Ρ…Π°ΠΊΠ΅Ρ€ΠΎΠ², Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π²ΠΈ.
НСкоторыС ΠΈΠ· выявлСнных нСдостатков Π‘ Π±Ρ‹Π»ΠΈ рассмотрСны ΠΈ ΡƒΡ‡Ρ‚Π΅Π½Ρ‹ Π² Π½ΠΎΠ²Ρ‹Ρ… языках программирования, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· Π‘ΠΈ. Π―Π·Ρ‹ΠΊ программирования Π¦ΠΈΠΊΠ»ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ особСнности, для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. C++ ΠΈ Objective C обСспСчиваСт конструкции ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для облСгчСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Java ΠΈ C # Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ конструкции ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, автоматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ
ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ C ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ 1969 ΠΈ 1973 (Π² соотвСтствии с Π ΠΈΡ‚Ρ‡ΠΈ, самый Π±ΡƒΡ€Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π² 1972 Π³ΠΎΠ΄Ρƒ). Он назывался "Π‘", ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΈΠ· ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ° языка ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ B , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π±Ρ‹Π» Π½Π°Π·Π²Π°Π½ Π‘ΠΎΠ½ Π² Ρ‡Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π½Ρ‹ Π‘ΠΎΠ½Π½ΠΈ КСн Вомпсон.
К 1973 Π³ΠΎΠ΄Ρƒ язык программирования Π‘ΠΈ стал достаточно ΠΌΠΎΡ‰Π½Ρ‹ΠΌ, поэтому большая Ρ‡Π°ΡΡ‚ΡŒ ядра ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Unix Π±Ρ‹Π»Π° пСрСписана Π½Π° C , для сравнСния опСрационная систСма Multics Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° языкС A, ОБ Tripos(Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° языкС BCPL. Π’ 1978 Π³ΠΎΠ΄Ρƒ Π ΠΈΡ‡ΠΈ ΠΈ Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ «язык программирования CΒ» (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΡƒΡŽ "Π±Π΅Π»ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ", ΠΈΠ»ΠΈ K & R.) Π½Π° протяТСнии ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚, эта ΠΊΠ½ΠΈΠ³Π° слуТила спСцификациСй языка, ΠΈ Π΄Π°ΠΆΠ΅ сСгодня, это ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ большой ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠ°ΠΊ руководство ΠΈ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ.
Π‘ стал ΠΎΡ‡Π΅Π½ΡŒ популярным Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Bell Labs с 1980-Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΈ Π±Ρ‹Π»ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ языком Π² систСмах ΠΈ прилоТСниях программирования ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². Π”ΠΎ сих ΠΏΠΎΡ€ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… языков программирования систСмы, ΠΈ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… языков программирования Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… для СстСствСнно-Π½Π°ΡƒΡ‡Π½ΠΎΠ³ΠΎ образования.
Π’ ΠΊΠΎΠ½Ρ†Π΅ 1980-Ρ… Π³ΠΎΠ΄ΠΎΠ², Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π² Bell Labs Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ конструкции для C. Π―Π·Ρ‹ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ вмСстС с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ компилятором Cfront, Π½Π°Π·Π²Π°Π»ΠΈ C++ (Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ вопроса ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊ "B" ΠΈ "Π‘" Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ "D" ΠΈΠ»ΠΈ "Π "). Π’ настоящСС врСмя язык C++ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для коммСрчСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Microsoft Windows, хотя C остаСтся ΠΎΡ‡Π΅Π½ΡŒ популярным Π² ΠΌΠΈΡ€Π΅ Unix.

ВСрсии C

K & R Π‘ΠΈ (ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ ΠΈ Π ΠΈΡ‚Ρ‡ΠΈ Π‘ΠΈ)
Π‘ развивался Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ зароТдСния Π² Bell Labs. Π’ 1978 Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½Π° ΠΈ Π ΠΈΡ‚Ρ‡ΠΈ "Π―Π·Ρ‹ΠΊ программирования C". Он Π²Π²Π΅Π» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ особСнности для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… вСрсий C:

  • structure Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…
  • long int Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…
  • unsigned int Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…
  • =+ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° += , ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ =+ постоянно Π²Ρ‹Π·Ρ‹Π²Π°Π» ошибки лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Π² C).

Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ "Π―Π·Ρ‹ΠΊ программирования C" Π±Ρ‹Π» ΡˆΠΈΡ€ΠΎΠΊΠΎ использован Π² качСствС спСцификации языка Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ. Π’Π΅Ρ€ΡΠΈΡŽ Π‘ΠΈ ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π² этой ΠΊΠ½ΠΈΠ³Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ "K & R C" (Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ANSI стандарт C, описанных Π½ΠΈΠΆΠ΅.)
K & R C часто считаСтся основной Ρ‡Π°ΡΡ‚ΡŒΡŽ языка, которая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для компилятора C. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ всС компиляторы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² настоящСС, врСмя Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ для ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ANSI C ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΈ достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΎ написанный K & R C ΠΊΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π΅Π½ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния стандарта ANSI C. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ K & R C считаСтся наимСньшим ΠΎΠ±Ρ‰ΠΈΠΌ Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ программисты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ для достиТСния максимальной пСрСносимости. НапримСр, Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° вСрсии компилятора GCC, xgcc, написано Π² K & R Π‘. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… GCC Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ANSI C компилятора GCC, поэтому Π±Ρ‹Π»Π° написана, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° базовая рСализация K & R языка Π‘.
Однако, ANSI C сСйчас ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ компиляторы. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° C с ноля ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² настоящСС врСмя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для использования возмоТностСй языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выходят Π·Π° Ρ€Π°ΠΌΠΊΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ K & R спСцификации.

ANSI C ΠΈ ISO C
Π’ 1989 , C Π±Ρ‹Π» Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ стандартизирован ANSI Π² ANSI X3.159-1989 "Π―Π·Ρ‹ΠΊ программирования Π‘". Одна ΠΈΠ· Ρ†Π΅Π»Π΅ΠΉ ANSI C Π±Ρ‹Π»ΠΎ созданиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ K & R Π‘. Однако, ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΏΠΎ стандартам Π±Ρ‹Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ нСсколько Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ внСсли ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π², Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это происходило Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΈ стандартизации языка.
НСкоторыС ΠΈΠ· Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй Π±Ρ‹Π»ΠΈ "Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ" Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² язык послС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ K & R, Π½ΠΎ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° процСсса ANSI C. К Π½ΠΈΠΌ относятся:

  • void Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ struct ΠΈΠ»ΠΈ union Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  • void * Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…
  • const ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ доступным Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния
  • struct ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° структуры
  • Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти Π½Π° struct Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…
  • stdio Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ стали доступны Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ (это ΡƒΠΆΠ΅ сущСствовало, Π½Ρƒ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄Π½Π° рСализация Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания K & R Π‘ΠΈ, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ это Π±Ρ‹Π» Π½Π΅ стандарт, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π² ΠΊΠ½ΠΈΠ³Π΅)
  • stddef.h Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… стандартных Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

НСкоторыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² C Π² процСссС стандартизации комиссиСй ANSI, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (заимствованныС ΠΈΠ· Π‘++). Π‘ΠΈ ΠΏΠΎ стандарту ANSI Ρ‚Π°ΠΊΠΆΠ΅ установил стандартный Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
Π―Π·Ρ‹ΠΊ программирования Π‘ ΠΏΠΎ стандарту ANSI, с нСбольшими измСнСниями Π±Ρ‹Π» принят Π² качСствС стандарта ИБО Π·Π° Π½ΠΎΠΌΠ΅Ρ€ΠΎΡ€ΠΌ ISO 9899 . ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ISO этого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ Π² 1990 (ISO 9899:1990).

C 99
ПослС процСсса стандартизации ANSI, спСцификации языка C остаСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ C++ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ. (На самом Π΄Π΅Π»Π΅, Нормативной ΠŸΠΎΠΏΡ€Π°Π²ΠΊΠΎΠΉ 1 создана новая вСрсия языка C Π² 1995 Π³ΠΎΠ΄Ρƒ, Π½ΠΎ эта вСрсия Ρ€Π΅Π΄ΠΊΠΎ признаСтся.) Однако, стандарты ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π»ΠΈΡΡŒ пСрСсмотру Π² ΠΊΠΎΠ½Ρ†Π΅ 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ созданию ISO 9899:1999, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1999 Π³ΠΎΠ΄Ρƒ. Π­Ρ‚ΠΎΡ‚ стандарт ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ "C99". Он Π±Ρ‹Π»Π° принята Π² качСствС стандарта ANSI Π² ΠΌΠ°Ρ€Ρ‚Π΅ 2000.
НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² C99 Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя:

  • встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • освобоТдСниС ограничСния Π½Π° располоТСниС объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π² соотвСтствии с C++)
  • Помимо Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ long long int (для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ связанных с ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ с 32-разрядных Π½Π° 64-Π±ΠΈΡ‚Π½Ρ‹Π΅ процСссоры, Π½Π°Π΄Π²ΠΈΠ³Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ старых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдсказало устарСвания x86 Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹), явный Π±ΡƒΠ»Π΅Π² Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Ρ‚ΠΈΠΏ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ комплСксныС числа
  • массивы ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹
  • ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Β«/ /Β» ΠΊΠ°ΠΊ Π² C++ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ компиляторы C89 ΠΊΠ°ΠΊ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π½Π΅-ANSI)
  • нСсколько Π½ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС snprintf
  • нСсколько Π½ΠΎΠ²Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π² Ρ‚ΠΎΠΌ числС stdint.h

Π˜Π½Ρ‚Π΅Ρ€Π΅Ρ ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π½ΠΎΠ²Ρ‹Ρ… особСнностСй Π‘99 являСтся смСшанной. Π₯отя GCC ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… коммСрчСских компиляторы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΎΠ²Ρ‹Ρ… особСнностСй Π‘99, компиляторы сдСланныС Microsoft ΠΈ Borland Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚, ΠΈ эти Π΄Π²Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π½Π΅ заинтСрСсованы Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° "Hello, World!" Π½Π° языкС Π‘ΠΈ
Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ " Hello, World "Π² стандартный Ρ„Π°ΠΉΠ» Π²Ρ‹Π²ΠΎΠ΄Π° (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ экран, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ устройство). ИзмСнСниС этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ появилась Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π² K & R.

#include int main(void) { printf("Hello, World!\\n"); //ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ return 0; /* ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π° нСсколько строк */ }

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ являСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Π° слуТит подсказкой для программиста записываСтся Π² Π²ΠΈΠ΄Π΅ коммСнтария. // однострочнй ΠΈΠ»ΠΈ /* многострочный*/

Анатомия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C
Π‘ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π‘ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Fortran ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Паскаля. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main . Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ каТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π‘ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ main Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.
main функция, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, printf Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ return 0 Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ значСния для main Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
Π‘ΠΈ функция состоит ΠΈΠ· Ρ‚ΠΈΠΏΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния, ΠΈΠΌΠ΅Π½ΠΈ, списка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (ΠΈΠ»ΠΈ void Π² скобках, Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Ρ… Π½Π΅Ρ‚) ΠΈ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅Π»Π° эквивалСнтСн составному ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ.

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры

БоставныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
БоставныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² C ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ΄
{ }
ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² качСствС Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π² Ρ‚Π΅Ρ… мСстах, Π³Π΄Π΅ оТидаСтся нСсколько дСйствий Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ объявлСния
Π£Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°
;
являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ объявлСния. Если Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ отсутствуСт, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ называСтся пустым ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π±ΠΎΡ€Π°
C ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π²Ρ‹Π±ΠΎΡ€Π°: Π΄Π²Π° Π²ΠΈΠ΄Π° if ΠΈ switch ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.
Π”Π²Π° Π²ΠΈΠ΄Π° if,
if ()
{
}
ΠΈΠ»ΠΈ
if ()
{
}
else
{
}
Π’ if объявлСнии, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² скобках ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ нуля ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²Π΄Π°, Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π·Π° if . Если Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ присутствуСт else, Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π·Π° else Π½Π°Π±ΠΎΡ€Ρƒ дСйствий, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² скобках Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎ.
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ управлСния switch – Π² этом случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ пСрСмСнная, стоящая Π² качСствС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠΎΠ³ΡƒΡ‚ выполнятся нСсколько дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ. КаТдая Π²Π΅Ρ‚ΠΊΠ° дСйствий ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ case ΠΌΠ΅Ρ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎ выглядит ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово case, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слСдуСт константным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ (:). НикакиС значСния, связанных с константами switch Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ default ΠΌΠ΅Ρ‚ΠΊΠΈ, связанной со swith; ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся default ΠΌΠ΅Ρ‚ΠΊΠ΅, Ссли Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· константных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ совпало с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€Π°, которая стоит Π² скобках послС switch . Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ссли Π±ΡƒΠ΄Π΅Ρ‚ совпадСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈ константы, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π½Π°Π±ΠΎΡ€ дСйствий ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ послС двоСточия

Switch () { case: printf(); break; case: printf(); break; default: }

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΡ (Π¦ΠΈΠΊΠ»Ρ‹)
Π‘ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ†ΠΈΠΊΠ»ΠΎΠ²:

Do { } while (); while () { } for (; ;) { }

Π’ while ΠΈ do ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ…, Ρ‚Π΅Π»ΠΎ выполняСтся Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния остаСтся Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²Π΄ΠΎΠΉ. Для while ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ условия происходит ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ выполнСния; для do ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия происходит послС выполнСия Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°.
Если всС Ρ‚Ρ€ΠΈ выраТСния ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ for

For (e1; e2; e3) s;

Ρ‚ΠΎ это эквивалСнтно Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ

E1; while (e2) { s; e3; }

Π›ΡŽΠ±ΠΎΠ΅ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Ρ†ΠΈΠΊΠ»Π° for ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ while ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ условия всСгда Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ, создавая бСсконСчный Ρ†ΠΈΠΊΠ».

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² C: goto , continue , break , ΠΈ return .
goto заявлСниС выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
goto <ΠΌΠ΅Ρ‚ΠΊΠ°>;
Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π° ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.
continue ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… повторСния Ρ†ΠΈΠΊΠ»Π° ΠΈ заставляСт ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ шаги Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ мСстС ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡˆΠ°Π³Ρƒ Ρ†ΠΈΠΊΠ»Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· заявлСния

While (expression) { /* ... */ continue; } do { /* ... */ continue ; } while (expression); for (optional-expr; optexp2; optexp3) { /* ... */ continue ; }

break ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»ΠΎΠ² for , while, do, ΠΈΠ»ΠΈ switch. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π·Π° Ρ‚Π΅ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ дСйствиС.
Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π² Ρ‚ΠΎ мСсто, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π·Π²Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return . ПослС return слСдуСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ возвращаСтся Π² мСсто, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π»Π°ΡΡŒ. Если функция Π½Π΅ содСрТит ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return, Ρ‚ΠΎ это эквивалСнтно return Π±Π΅Π· выраТСния. Π’ любом случаС, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ.
ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ примСнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² C89

  • () ->. + + - (CAST) Postfix ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
  • + + - * & ~! + - SizeOf ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
  • * /% ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
  • + - АддитивныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
  • << >> ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сдвига
  • < <= > >= РСляционных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
  • =! == ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² равСнства
  • & ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΈ
  • ^ ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜
  • | ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π»ΠΈΠ±ΠΎ
  • & & ЛогичСскоС ΠΈ
  • | | ЛогичСских ΠΈΠ»ΠΈ
  • ?: Условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
  • = += -= *= /= %= <<= >>=
  • & = | = ^ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² присваивания =
  • , ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ запятая

ОбъявлСниС Π΄Π°Π½Π½Ρ‹Ρ…
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…
ЗначСния Π² ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ основных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ float , double , ΠΈ long double Ρ‚ΠΈΠΏΠ°, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, упомянуты Π² IEEE 754 стандартС.

ΠœΠ°ΡΡΠΈΠ²Ρ‹
Если объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ происходит с использованиСм вмСстС с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок (), Ρ‚ΠΎ считаСтся, Ρ‡Ρ‚ΠΎ объявлСн массив. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ это массивы символов. Они Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ символом нуля (прСдставлСн Π² Π‘ ΠΊΠ°ΠΊ "\0" , Π½ΡƒΠ»Π΅Π²ΠΎΠΉ символ).
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:
int myvector ;
char mystring ;
float mymatrix = {2.0 , 10.0, 20.0, 123.0, 1.0, 1.0}
char lexicon ; /* 10000 строк, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΆΠ΅Ρ€ΠΆΠ°Ρ‚ΡŒ максимум 300 символов. */
int a;
ПослСдний ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создаСт массив массивов, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π·Π°Π΄Π°Ρ‡. Для доступа ΠΊ 12 int значСням массива Β«aΒ», ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π·ΠΎΠ²:

a a a a
a a a a
a a a a

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ
Если пСрСмСнная прСдваряСтся символом Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° (*) Π² своСм заявлСнии, Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½Π° становится ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:
int *pi; /* ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΠΎΠ΅ */
int *api; /* массив ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° */
char **argv; ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΊΡƒΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° char */

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² адрСсС хранится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ доступны Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-указатСля со Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ. НапримСр, Ссли ΠΏΠ΅Ρ€Π²ΠΎΠ΅ заявлСниС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, *pi являСтся int . Π­Ρ‚ΠΎ называСтся "разымСнования" указатСля.
Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, & (ампСрсанд), называСтся адрСс-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, массива ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ
int i, *pi; /* объявим Ρ†Π΅Π»ΠΎΠ΅ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΠΎΠ΅ */
pi = &i;

I ΠΈ *pi ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ взаимозамСняСмыС (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ pi Π±ΡƒΠ΄Π΅Ρ‚ установлСно Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅).

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ
Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ C , ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строк ΠΈ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ массивы Ρ‚ΠΈΠΏΠ° char .

НаиболСС Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ строки:

  • strcat(dest, source) - добавляСт строку source Π² ΠΊΠΎΠ½Π΅Ρ† строки dest
  • strchr(s, c) - Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° c Π² строку s ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ пустой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ссли c Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
  • strcmp(a, b) - сравниваСт строки ΠΈ a b (лСксичСских Π·Π°ΠΊΠ°Π·Π°); Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ссли мСньшС a b , 0, Ссли Ρ€Π°Π²Π½Ρ‹, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ссли большС.
  • strcpy(dest, source) - ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ строку source Π² строку dest
  • strlen(st) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки st
  • strncat(dest, source, n) - добавляСт максимум n символов ΠΈΠ· строки source Π² ΠΊΠΎΠ½Π΅Ρ† строки dest ; символы послС Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ символа Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ.
  • strncmp(a, b, n) - сравниваСт максимум n символов ΠΈΠ· строки ΠΈ a b (лСксичСских Π·Π°ΠΊΠ°Π·Π°); Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ссли мСньшС a b , 0, Ссли Ρ€Π°Π²Π½Ρ‹, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ссли большС.
  • strncpy(dest, source, n) - ΠΊΠΎΠΏΠΈΠΈ максимум n символов ΠΈΠ· строки source Π² строку dest
  • strrchr(s, c) - Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ послСдний экзСмпляр символа c Π² строку s ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ пустой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ссли c Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½

МСнСС Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ строки:

  • strcoll(s1, s2) - ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΄Π²Π΅ строки Π² соотвСтствии с Π»ΠΎΠΊΠ°Π»ΠΈ упорядочСнной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
  • strcspn(s1, s2) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Π² s1 , Ρ‡Ρ‚ΠΎ соотвСтствуСт Π»ΡŽΠ±ΠΎΠΌΡƒ символу, Π² s2
  • strerror(err) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку с сообщСниСм ΠΎΠ± ошибкС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² err
  • strpbrk(s1, s2) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ Π² s1 , Ρ‡Ρ‚ΠΎ соотвСтствуСт Π»ΡŽΠ±ΠΎΠΌΡƒ символу, Π² s2 ΠΈΠ»ΠΈ пустой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ссли Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
  • strspn(s1, s2) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Π² s1 , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт Π½Π΅ символ Π² s2
  • strstr(st, subst) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ строки subst Π² st ΠΈΠ»ΠΈ пустой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ссли Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ подстроки сущСствуСт.
  • strtok(s1, s2) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π² s1 Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ символами Π² s2 .
  • strxfrm(s1, s2, n) - ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ s2 Π² s1 использовании Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»

Π€Π°ΠΉΠ» Π²Π²ΠΎΠ΄Π° / Π²Ρ‹Π²ΠΎΠ΄Π° Π’ языкС программирования Π‘ΠΈ, Π²Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅. Π’ ANSI / ISO Π‘ΠΈ, Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.
Π’Ρ€ΠΈ стандартных ΠΏΠΎΡ‚ΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°
stdin стандартный Π²Π²ΠΎΠ΄
stdout стандартный Π²Ρ‹Π²ΠΎΠ΄
stderr стандартная ошибка

Π­Ρ‚ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ автоматичСски открываСтся ΠΈ закрываСтся срСдой исполнСния, ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ Π² явном Π²ΠΈΠ΄Π΅.
Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ структурирована обычная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠΊΠ²:

//Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, #include

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, прСдставлСнными Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ C с двумя ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ – ΠΊΠΎΠ»-Π²ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки хранится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ argc, Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ массивы Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ Π½Π° массив argv . Π’Π°ΠΊ запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² Π² Π²ΠΈΠ΄Π΅
Myprog p1 p2 p3
даст Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π½Π° (ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ строки ΡΠ²Π»ΡΡŽΡ‚ΡΡ смСТными):
К ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ значСниям ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ argv , argv , ΠΈΠ»ΠΈ argv .

Π‘ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
МногиС особСнности языка Π‘ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Π‘ΠΈ. "Π₯остинг" рСализация прСдоставляСт всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C. (Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для использования с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой). Доступ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ достигаСтся Π² Ρ‚ΠΎΠΌ числС стандартными Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ прСпроцСссора #include. Π‘ΠΌ. ANSI C стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, GCC (GNU C Compiler).

Π―Π·Ρ‹ΠΊ программирования C++

ПослСднСС обновлСниС: 28.08.2017

Π―Π·Ρ‹ΠΊ программирования Π‘++ прСдставляСт высокоуровнСвый ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния со статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания самых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. На сСгодняшний дСнь Π‘++ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых популярных ΠΈ распространСнных языков.

Π‘Π²ΠΎΠΈΠΌΠΈ корнями ΠΎΠ½ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² язык Π‘ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 1969-1973 Π³ΠΎΠ΄Π°Ρ… Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Bell Labs программистом ДСннисом Π ΠΈΡ‚Ρ‡ΠΈ (Dennis Ritchie). Π’ Π½Π°Ρ‡Π°Π»Π΅ 1980-Ρ… Π³ΠΎΠ΄ΠΎΠ² датский программист Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп (Bjarne Stroustrup), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Ρ‚ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Bell Labs, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Π‘++ ΠΊΠ°ΠΊ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊ языку Π‘ΠΈ. ЀактичСски Π²Π½Π°Ρ‡Π°Π»Π΅ C++ просто дополнял язык Π‘ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ возмоТностями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. И поэтому сам Бтрауструп Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π°Π·Ρ‹Π²Π°Π» Π΅Π³ΠΎ ΠΊΠ°ΠΊ "C with classes" ("Π‘ΠΈ с классами").

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

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

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

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ этапы развития

Π’ 1979-80 Π³ΠΎΠ΄Π°Ρ… Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊ языку Π‘ΠΈ - "Π‘ΠΈ с классами". Π’ 1983 язык Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Π‘++.

Π’ 1985 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° пСрвая коммСрчСская вСрсия языка Π‘++, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ "Π―Π·Ρ‹ΠΊΠ° программирования C++", которая прСдставляла ΠΏΠ΅Ρ€Π²ΠΎΠ΅ описаниС этого языка ΠΏΡ€ΠΈ отсутствии ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ стандарта.

Π’ 1989 Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° новая вСрсия языка C++ 2.0, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π»Π° ряд Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй. ПослС этого язык развивался ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 2011 Π³ΠΎΠ΄Π°. Но ΠΏΡ€ΠΈ этом Π² 1998 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° прСдпринята пСрвая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎ стандартизации языка ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ISO (International Organiztion for Standartization). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ стандарт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ISO/IEC 14882:1998 ΠΈΠ»ΠΈ сокращСнно Π‘++98. Π’ дальнСйшСм Π² 2003 Π±Ρ‹Π»Π° ΠΈΠ·Π΄Π°Π½Π° новая вСрсия стандарта C++03.

Π’ 2011 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» ΠΈΠ·Π΄Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ стандарт C++11, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТал мноТСство Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΠΎΠ³Π°Ρ‰Π°Π» язык Π‘++ большим числом Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй. ПослС этого Π² 2014 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ нСбольшоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ стандарту, извСстноС Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ C++14. И Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ€Π΅Π»ΠΈΠ· языка Π½Π°ΠΌΠ΅Ρ‡Π΅Π½ Π½Π° 2017.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ ΠΈ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π‘++ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ компилятор - ΠΎΠ½ транслируСт исходный ΠΊΠΎΠ΄ Π½Π° языкС Π‘++ Π² исполняСмый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ. Но Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… компиляторов. Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ аспСктам, Π² частности, ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ стандартов. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ список компиляторов для Π‘++ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ . РСкомСндуСтся для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚Π΅ компиляторы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ всС послСдниС стандарты. Π’Π°ΠΊ, Π½Π° протяТСнии всСго руководства прСимущСствСнно Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ свободно распространяСмый компилятор g++ , Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU.

Π’Π°ΠΊΠΆΠ΅ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ IDE, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Visual Studio, Netbeans, Eclipse, Qt ΠΈ Ρ‚.Π΄.

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

C++ являСтся языком программирования, Π·Π½Π°Π½ΠΈΠ΅ этого языка программирования ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ вашим ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ Π½Π° Π²Ρ‹ΡΡˆΠ΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Π²Ρ‹ смоТСтС Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всё, Ρ‡Ρ‚ΠΎ сами Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. Наш сайт ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π² освоСнии языка программирования C++.

Установка /IDE

Π‘Π°ΠΌΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ C++, это ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ IDE β€” интСгрированная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ). Если Ρƒ вас Π½Π΅Ρ‚ IDE, Ρ‚ΠΎΠ³Π΄Π° Π²Π°ΠΌ сюда . Когда ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ IDE, установитС Π΅Ρ‘ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ простыС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² язык C++

Π―Π·Ρ‹ΠΊ C++ прСдставляСт собой Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ говорят ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ называСтся исходный ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ просто ΠΊΠΎΠ΄. Командами ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ» ΠΈΠ»ΠΈ Β«ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова». ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова(Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ слова Π‘/Π‘++) ΡΠ²Π»ΡΡŽΡ‚ΡΡ основными ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ языка. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ слоТными ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ записаны ΠΎΠ½ΠΈ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Π±ΠΎΠ»Π΅Π΅ простых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€” Π²Ρ‹ это ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π² нашСй самой ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, которая ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½ΠΈΠΆΠ΅. Вакая структура Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ содСрТаниС ΠΊΠ½ΠΈΠ³ΠΈ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π³Π»Π°Π²Ρ‹ ΠΊΠ½ΠΈΠ³ΠΈ, каТдая Π³Π»Π°Π²Π° Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ своё собствСнноС содСрТаниС, состоящСС ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свои ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚Ρ‹. Π₯отя C++ прСдоставляСт ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, всС-Ρ‚Π°ΠΊΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² написании своих собствСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π’ ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΎ? КаТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² C++ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π΅Ρ‘ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ главная ΠΈΠ»ΠΈ main-функция, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ начинаСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Из Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ написанными Π½Π°ΠΌΠΈ, ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ компилятором.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этим Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ функциям? Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ стандартным функциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с компилятором, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ β€” #include . ΠŸΠΎΡ‡Π΅ΠΌΡƒ это эффСктивно? Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

#include << "Моя пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘++\n"; cin.get(); }

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ элСмСнты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. #include это Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° «прСпроцСссору», которая сообщаСт компилятору ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° iostream Π² Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ». ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ мноТСству Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. НапримСр, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ сout трСбуСтся iostream . Π‘Ρ‚Ρ€ΠΎΠΊΠ° using namespace std; сообщаСт компилятору, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ std . Π’ Ρ‚ΠΎΠΌ числС эта строка позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ cout . Π’ΠΎΡ‡ΠΊΠ° с запятой являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ синтаксиса C++. Она сообщаСт компилятору, Ρ‡Ρ‚ΠΎ это ΠΊΠΎΠ½Π΅Ρ† ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π§ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° с запятой ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π² C++.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ваТная строка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ int main() . Π­Ρ‚Π° строка сообщаСт компилятору, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ функция с ΠΈΠΌΠ΅Π½Π΅ΠΌ main , ΠΈ Ρ‡Ρ‚ΠΎ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число Ρ‚ΠΈΠΏΠ° int . Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки { ΠΈ } ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΎ Π½Π°Ρ‡Π°Π»Π΅ { ΠΈ ΠΊΠΎΠ½Ρ†Π΅ } Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±Π»ΠΎΠΊΠ°Ρ… ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ всСгда ΠΎΠ΄Π½ΠΎ β€” Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Π±Π»ΠΎΠΊΠ°, соотвСтствСнно.

Π’ C++ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ cout ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния тСкста (произносится ΠΊΠ°ΠΊ Β«CΠΈ Π°ΡƒΡ‚Β»). Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ символы << , извСстныС ΠΊΠ°ΠΊ Β«ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сдвига», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ отправляСтся ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ Π½Π° экран. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cout << являСтся ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ тСкста Π½Π° экранС. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ \n фактичСски рассматриваСтся ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ строку (ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ). Π‘ΠΈΠΌΠ²ΠΎΠ» \n ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ курсор Π½Π° экранС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой, Π΅Ρ‘ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π² ΠΊΠΎΠ½Π΅Ρ†, послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π‘++.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° cin.get() . Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая считываСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ наТатия клавиши ENTER. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° сохраняСт консольноС ΠΎΠΊΠ½ΠΎ ΠΎΡ‚ закрытия, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚Π° клавиша ENTER. Π­Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π²Π°ΠΌ врСмя для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

#include using namespace std; int main() { cout<<"Моя пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘++\n"; cin.get(); return 1; }

Для закрСплСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² своСй IDE ΠΈ запуститС Π΅Π³ΠΎ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ»Π°ΡΡŒ, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹, поэкспСримСнтируйтС Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ cout . Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ ΠΊ языку.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ свои ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹!

ДобавляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΊΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ понятнСС Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для сСбя Π½ΠΎ ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ…. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любоС количСство ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ»ΠΈ // , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщаСт компилятору, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ строки являСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ /* ΠΈ Π·Π°Ρ‚Π΅ΠΌ */ . Когда Π²Ρ‹ ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ участки ΠΊΠΎΠ΄Π°, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ измСняСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ коммСнтирования, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ .

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ со всСми этими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…?

Иногда это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ β€” ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ³Π΄Π° каТСтся, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌΠΈ. ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, трСбуСтся большС памяти, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ·-Π·Π° способа хранСния Π² памяти, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… float ΠΈ double ΡΠ²Π»ΡΡŽΡ‚ΡΡ Β«Π½Π΅Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌΒ», ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² C++

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ синтаксис Ρ‚ΠΈΠΏ <имя>; . Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

Int num; char character; float num_float;

Допустимо объявлСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ° Π² ΠΎΠ΄Π½ΠΎΠΉ строкС, для этого каТдая ΠΈΠ· Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π° запятой.

Int x, y, z, d;

Если Π²Ρ‹ смотрСли Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ всСгда сопровоТдаСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ соглашСнии β€” Β«ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…Β», ΠΌΠΎΠΆΠ½ΠΎ .

РаспространСнныС ошибки ΠΏΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² C++

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ объявили, ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ скомпилирована, ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС. Π’ C++, всС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова языка, всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру.

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ использованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

#include using namespace std; int main() { int number; cout << "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число: "; cin >> number; cin.ignore(); cout << "Π’Ρ‹ Π²Π²Π΅Π»ΠΈ: "<< number <<"\n"; cin.get(); }

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Π΅Ρ‘ ΠΊΠΎΠ΄, строку Π·Π° строкой. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово int Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ number β€” Ρ†Π΅Π»ΠΎΠ΅ число. Ѐункция cin >> считываСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² number , ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ послС Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ числа. cin.ignore () β€” функция, которая считываСт символ ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ. ΠœΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ свой Π²Π²ΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, послС Π²Π²ΠΎΠ΄Π° числа, ΠΌΡ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ENTER, символ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ пСрСдаётся Π² ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π°. Нам это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, поэтому ΠΌΡ‹ Π΅Π³ΠΎ отбрасываСм. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ пСрСмСнная Π±Ρ‹Π»Π° объявлСна Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ попытаСтся ввСсти дСсятичноС число, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π΅Π·Π°Π½ΠΎ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ дСсятичная Ρ‡Π°ΡΡ‚ΡŒ числа Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ). ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ввСсти дСсятичноС число ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запуститС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΡ‚Π²Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ сообщаСт компилятору , Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ пСрСмСнная, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. НСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сдвига Π² ΠΎΠ΄Π½ΠΎΠΉ строкС Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ порядкС. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ (строки, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ) ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, давая ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ свой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сдвига << . ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вмСстС с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ сдвига << выдаст сообщСниС ΠΎΠ± ошибкС . НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой. Если Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎ Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой, компилятор выдаст Π²Π°ΠΌ сообщСниС ΠΎΠ± ошибкС ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ИзмСнСниС ΠΈ сравнСниС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ особого интСрСса Π±Π΅Π· возмоТности измСнСния ΠΈΡ… значСния. Π”Π°Π»Π΅Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ совмСстно с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ:

  • * ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅,
  • - Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅,
  • + слоТСниС,
  • / Π΄Π΅Π»Π΅Π½ΠΈΠ΅,
  • = присвоСниС,
  • == равСнство,
  • > большС,
  • < мСньшС.
  • != Π½Π΅Ρ€Π°Π²Π½ΠΎ
  • >= большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
  • <= мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ , Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ справа ΠΎΡ‚ Π·Π½Π°ΠΊΠ° присвоСния, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слСва.

Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

A = 4 * 6; // использованиС строчного коммСнтария ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой, a Ρ€Π°Π²Π½ΠΎ 24 a = a + 5; // Ρ€Π°Π²Π½ΠΎ суммС исходного значСния ΠΈ пяти a == 5 // Π½Π΅ присваиваСтся ΠΏΡΡ‚ΡŒ, выполняСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Π° Ρ€Π°Π²Π½ΠΎ 5 ΠΈΠ»ΠΈ Π½Π΅Ρ‚

Π’Ρ‹ часто Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ == Π² Ρ‚Π°ΠΊΠΈΡ… конструкциях, ΠΊΠ°ΠΊ условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹.

A < 5 // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, a ΠΌΠ΅Π½Π΅Π΅ пяти? a > 5 // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, a большС пяти? a == 5 // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, a Ρ€Π°Π²Π½ΠΎ пяти? a != 5 // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Π° Π½Π΅Ρ€Π°Π²Π½ΠΎ пяти? a >= 5 // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, a большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ пяти? a <= 5 // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, a мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ пяти?

Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ наглядно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ использованиС Π·Π½Π°ΠΊΠΎΠ² сравнСния, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° , Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Π·Π°Ρ‡Π΅ΠΌ это Π½Π°Π΄ΠΎ.