ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² с: объявлСниС, инициализация, Ρ‚ΠΈΠΏΡ‹, прСдставлСниС ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² C++ | Π£Ρ€ΠΎΠΊΠΈ Π‘++

  Обновл. 29 Авг 2020  | 

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡ Π½Π° языкС C++, ΠΌΡ‹ создаСм, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ β€” это Ρ‡Π°ΡΡ‚ΡŒ памяти, которая ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ качСствС Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ящик, ΠΊΡƒΠ΄Π° ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΎΡ‚ΠΊΡƒΠ΄Π° Π΅Ρ‘ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ. ВсС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти выдСляСтся для этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² языкС C++, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

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

CΡ‚Π΅ΠΉΡ‚ΠΌΠ΅Π½Ρ‚ a = 8; выглядит довольно простым: ΠΌΡ‹ присваиваСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 8 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a. Но Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ a? a β€” это пСрСмСнная, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ.

На этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотрим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ЦСлоС число β€” это число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±Π΅Π· Π΄Ρ€ΠΎΠ±ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: -11, -2, 0, 5 ΠΈΠ»ΠΈ 34.

Для создания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стСйтмСнт объявлСния (Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ объявлСниСм ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΡ‹ рассмотрим нСсколько ΠΏΠΎΠ·ΠΆΠ΅). Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ объявлСния цСлочислСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a (которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа):

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этой инструкции Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ процСссором Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти выдСляСтся ΠΏΠΎΠ΄ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a присваиваСтся ячСйка памяти ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 150. Когда ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ a Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π² стСйтмСнтС, Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² ячСйку памяти ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 150.

Одной ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ являСтся опСрация присваивания, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Когда процСссор выполняСт эту ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, ΠΎΠ½ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΅Ρ‘ ΠΊΠ°ΠΊ Β«ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 8 Π² ячСйку памяти ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 150Β».

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ смоТСм вывСсти это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° экран с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ std::cout:

std::cout << a; // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a (ячСйка памяти ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 150) Π½Π° экран



std::cout << a; // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a (ячСйка памяти ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 150) Π½Π° экран

l-valuesΒ ΠΈ r-values

Π’ языкС C++ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ l-values. l-valueΒ (Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Β«Π»-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β», произносится ΠΊΠ°ΠΊ Β«Π΅Π»-валью») β€” это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный адрСс Π² памяти. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ адрСса, Ρ‚ΠΎ ΠΎΠ½ΠΈ всС ΡΠ²Π»ΡΡŽΡ‚ΡΡ l-values (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ a, b, c β€” всС ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ l-values). l ΠΎΡ‚ слова Β«leftΒ», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния l-values ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π»Π΅Π²ΠΎΠΉ сторонС Π² опСрациях присваивания (Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ). НапримСр, стСйтмСнт 9 = 10; Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ компилятора, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ 9 Π½Π΅ являСтся l-value. Число 9 Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ своСго адрСса Π² памяти ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΅ΠΌΡƒ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ (9 = 9 ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ здСсь Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ).

ΠŸΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ l-value являСтся r-valueΒ (Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Β«Ρ€-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β», произносится ΠΊΠ°ΠΊ Β«Π΅Ρ€-валью»). r-value — это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ постоянного адрСса Π² памяти. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Π΅ числа (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 7, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 7) ΠΈΠ»ΠΈ выраТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 3 + Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ… плюс 3).

Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ присваивания с использованиСм r-values:

int a;Β Β Β Β Β Β // объявляСм Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ a
a = 5;Β Β Β Β Β Β // 5 ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°
a = 4 + 6;Β Β // 4 + 6 ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°

int b;Β Β Β Β Β Β // объявляСм Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ b
b = a;Β Β Β Β Β Β // a ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10 (исходя ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b
b = b;Β Β Β Β Β Β // b ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b (Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит)
b = b + 2;Β Β // b + 2 ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 12, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b



int a;Β Β Β Β Β Β // объявляСм Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ a

a = 5;Β Β Β Β Β Β // 5 ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°

a = 4 + 6;Β Β // 4 + 6 ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°

Β 

int b;Β Β Β Β Β Β // объявляСм Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ b

b = a;Β Β Β Β Β Β // a ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10 (исходя ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b

b = b;Β Β Β Β Β Β // b ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b (Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит)

b = b + 2;Β Β // b + 2 ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 12, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ рассмотрим послСднюю ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ присваивания:

Π—Π΄Π΅ΡΡŒ пСрСмСнная b ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… контСкстах. Π‘Π»Π΅Π²Π° b ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ l-value (пСрСмСнная с адрСсом Π² памяти), Π° справа b ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ r-value ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, 12). ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этого стСйтмСнта, компилятор Π²ΠΈΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

И здСсь ΡƒΠΆΠ΅ понятно, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b.

Бильно Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ l-values ΠΈΠ»ΠΈ r-values сСйчас Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π΅Ρ‰Π΅ вСрнСмся ΠΊ этой Ρ‚Π΅ΠΌΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠ°Ρ…. Всё, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ сСйчас Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π»Π΅Π²ΠΎΠΉ сторонС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания всСгда Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ l-value (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный адрСс Π² памяти), Π° Π² ΠΏΡ€Π°Π²ΠΎΠΉ сторонС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания β€” r-value (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅).

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ vs. ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅

Π’ языкС C++ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ часто ΠΏΡƒΡ‚Π°ΡŽΡ‚: присваиваниС ΠΈ инициализация.

ПослС объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания (Π·Π½Π°ΠΊ равСнства =):

int a; // это объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
a = 8; // Π° это присваиваниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a значСния 8



int a; // это объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

a = 8; // Π° это присваиваниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a значСния 8

Π’ языкС C++ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π­Ρ‚ΠΎ называСтся ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ (ΠΈΠ»ΠΈ Β«ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌΒ»).

int a = 8; // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ a Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 8



int a = 8; // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ a Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 8

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ объявлСния.

Π₯отя эти Π΄Π²Π° понятия Π±Π»ΠΈΠ·ΠΊΠΈ ΠΏΠΎ своСй сути ΠΈ часто ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для достиТСния ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ†Π΅Π»Π΅ΠΉ, всС ΠΆΠ΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, вмСсто присваивания, Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… β€” присваиваниС вмСсто ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ: Если Ρƒ вас ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ имССтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, вмСсто присваивания.

НСинициализированныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

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

ИспользованиС Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

#include <iostream>

int main()
{
// ОбъявляСм Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ a
int a;

// Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a Π½Π° экран (a — это нСинициализированная пСрСмСнная)
std::cout << a;

return 0;
}



#include <iostream>

Β 

int main()

{

Β Β Β Β // ОбъявляСм Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ a

Β Β Β Β int a;

Β 

Β Β Β Β // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a Π½Π° экран (a — это нСинициализированная пСрСмСнная)

Β Β Β Β std::cout << a;

Β 

Β Β Β Β return 0;

}

Π’ этом случаС компилятор присваиваСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a ячСйку Π² памяти, которая Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ свободна (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ). Π—Π°Ρ‚Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a отправляСтся Π½Π° Π²Ρ‹Π²ΠΎΠ΄. Но Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½Π° экранС? НичСго, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ компилятор это Π½Π΅ пропустит β€” вывСдСтся ошибка, Ρ‡Ρ‚ΠΎ пСрСмСнная a являСтся Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ. Π’ Π±ΠΎΠ»Π΅Π΅ старых вСрсиях Visual Studio компилятор Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΌΠΎΠ³ Π±Ρ‹ вывСсти ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 7177728, Ρ‚.Π΅. мусор), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ содСрТимым Ρ‚ΠΎΠΉ ячСйки памяти, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ присвоил нашСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

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

Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ считаСтся всСгда ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠ΅ΠΉ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ваша пСрСмСнная всСгда ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΎΡ‚ компилятора.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ: Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС ваши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ значСния (Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ присваивания).

ВСст

Какой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… стСйтмСнтов?

int a = 6;
a = a — 3;
std::cout << a << std::endl; // β„–1

int b = a;
std::cout << b << std::endl; // β„–2

// Π’ этом случаС a + b являСтся r-value
std::cout << a + b << std::endl; // β„–3

std::cout << a << std::endl; // β„–4

int c;
std::cout << c << std::endl; // β„–5



int a = 6;

a = a — 3;

std::cout << a << std::endl; // β„–1

int b = a;

std::cout << b << std::endl; // β„–2

// Π’ этом случаС a + b являСтся r-value

std::cout << a + b << std::endl; // β„–3

std::cout << a << std::endl; // β„–4

int c;

std::cout << c << std::endl; // β„–5

ΠžΡ‚Π²Π΅Ρ‚Ρ‹

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Π½Π΅Π³ΠΎ ΠΌΡ‹ΡˆΠΊΠΎΠΉ.

ΠžΡ‚Π²Π΅Ρ‚ β„–1

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ 3: a – 3 = 3, Ρ‡Ρ‚ΠΎ ΠΈ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a.

ΠžΡ‚Π²Π΅Ρ‚ β„–2

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ 3: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a (3).

ΠžΡ‚Π²Π΅Ρ‚ β„–3

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ 6: a + b = 6. Π—Π΄Π΅ΡΡŒ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опСрация присваивания.

ΠžΡ‚Π²Π΅Ρ‚ β„–4

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ 3: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a Π΄ΠΎ сих ΠΏΠΎΡ€ являСтся 3.

ΠžΡ‚Π²Π΅Ρ‚ β„–5

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ошибка, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ c β€” это нСинициализированная пСрСмСнная.

ΠžΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ:

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ°…

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² языкС C

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² языкС C

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π² Π‘ — имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Π”Π°Π½Π½Ρ‹Π΅, находящиСся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎ Π΅Π΅ адрСсу Π² памяти), Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ВсС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² языкС Π‘ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм. ΠŸΡ€ΠΈ использовании Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π°Π½Π΅Π΅ Π½Π΅ объявлСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ компилятор выдаст сообщСниС ΠΎΠ± ошибкС Π²Ρ€ΠΎΠ΄Π΅

test.c: In function ‘main’:
test.c:7: error: ‘x’ undeclared (first use in this function)
test.c:7: error: (Each undeclared identifier is reported only once
test.c:7: error: for each function it appears in.)

Π’ этом сообщСнии указываСтся имя Ρ„Π°ΠΉΠ»Π° ΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ошибка (test.c:5), Π° Ρ‚Π°ΠΊΠΆΠ΅ описаниС ошибки (`x‘ undeclared — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ x Π½Π΅ объявлСн).

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π΅ Ρ‚ΠΈΠΏ. БущСствуСт нСсколько стандартных Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ программист ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ собствСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, для хранСния Ρ†Π΅Π»Ρ‹Ρ… чисСл слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ int, Π° для Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл — double.

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

<Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½ΠΎΠΉ> <ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ>;

НапримСр, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ n ΠΈ m Ρ‚ΠΈΠΏΠ° int ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ строкой:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x Ρ‚ΠΈΠΏΠ° double ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ строкой:

ЗначСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сразу послС объявлСния Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния, являСтся ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌ.Β 

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ — это Π΅Π΅ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π±ΡƒΠΊΠ² латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, символа подчСркивания ΠΈ Ρ†ΠΈΡ„Ρ€, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΉΡΡ с Π±ΡƒΠΊΠ²Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²: Π°, n, Year, CaMeL. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°: 100ege. ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру Π±ΡƒΠΊΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Number, number, NUMBER ΠΈ nUMbeR — это Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Допустимо ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ прямо Π² конструкции Π΅Π΅ объявлСния: int n = 10, m = 2;

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

ΠΈΠ»ΠΈ

(Π² послСднСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ m записано

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² языкС Π‘ΠΈ. ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Π‘ΠΈ.

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, приостановитС Ρ€Π°Π±ΠΎΡ‚Ρƒ AdBlock Π½Π° этом сайтС.



Π§Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Π²Π°ΠΌ понадобятся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, вспоминая Π½Π°ΡˆΡƒ аналогию с ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Π΅Ρ‘, эту ΡΠ°ΠΌΡƒΡŽ ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π±Ρ‹ сначала Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ€Π°Π·Π΄ΠΎΠ±Ρ‹Ρ‚ΡŒ.


Π’ ΠΊΠ½ΠΈΠΆΠΊΠ°Ρ… ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ процСсс создания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ объявлСниСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ словосочСтаниС Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ Ρ€Π΅Ρ‡ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΡ… программистов. Но Π΅Ρ‰Ρ‘ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π° этим словосочСтаниСм скрываСтся.


Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ?


Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Ρ‘ Ρ‚ΠΈΠΏ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Ρ‘ имя. Ну ΠΈ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ «;». ΠžΠ±Ρ‰Π°Ρ стуктура объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС.


Рис.1. ΠžΠ±Ρ‰ΠΈΠΉ синтаксис объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.».


Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π° рисункС ΠΌΡ‹ создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ num, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅ числа. На Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для хранСния Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int.


Π•Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:


Листинг 1. ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…


int z;  // пСрСмСнная z  Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
char w; // пСрСмСнная w символьного Ρ‚ΠΈΠΏΠ°


Для ΠΈΠΌΡ‘Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ.



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


На самом Π΄Π΅Π»Π΅, Π½Π° имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ограничСния, Π½ΠΎ ΠΌΡ‹ ΠΏΠΎΠΊΠ° Π² Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΡ‘Π½.


ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…


Peremennaya, flag, f3, var4, KolichestvoBukv, fd4s, FLaG, key_number

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…


2num – начинаСтся с Ρ†ΠΈΡ„Ρ€Ρ‹

num flat – содСрТит ΠΏΡ€ΠΎΠ±Π΅Π» Π² ΠΈΠΌΠ΅Π½ΠΈ

nomer-telefona – содСрТит дСфис


И Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π’ языкС программирования Π‘ΠΈ рСгистр Π±ΡƒΠΊΠ² ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½. НапримСр, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ flag, FLAG, FlAg, fLAg — это всё Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ ряд слов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для названия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, int, void, return ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Π½ΡƒΠΆΠ΄ самого языка ΠΈ Π½ΠΈΠ³Π΄Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹.


ΠšΡΡ‚Π°Ρ‚ΠΈ, Π·Π° ΠΎΠ΄Π½ΠΎ объявлСниС ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сразу нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.


Листинг 2. ОбъявлСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…


int a,c; // объявляСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ a ΠΈ c Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
double x, y, z; // объявляСм сразу Ρ‚Ρ€ΠΈ вСщСствСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ 

Всё просто ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ. Π‘Π½Π°Ρ‡Π°Π»Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΡ… ΠΈΠΌΠ΅Π½Π°, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ запятой.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

ΠŸΠ°Ρ€Ρƒ слов ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ выглядит объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

МоТно ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ объявлСнии ΠΌΡ‹ сообщаСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π²Ρ‹Π΄Π΅Π»ΠΈΠ» ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ мСсто Π² памяти ΠΈ связал это мСсто ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ мСста, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π² памяти для хранСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ эту ΠΌΡ‹ΡΠ»ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ рисунком.

Листинг 3. ОбъявлСниС Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…


int w; // объявляСм цСлочислСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ w
double z; // объявляСм вСщСствСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ z 


Рис.3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.


На рисункС условно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ ячССк, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ. ΠŸΡ€ΠΈ этом вСщСствСнная пСрСмСнная Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π΅ ячСйки, Π° цСлочислСнная всСго ΠΎΠ΄Π½Ρƒ. Π­Ρ‚ΠΎ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ (Π΄Π²Π° ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ) условноС. На самом Π΄Π΅Π»Π΅, Π² вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ пСрСмСнная вСщСствСнного Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π° большС мСста Π² памяти, Ρ‡Π΅ΠΌ цСлочислСнная пСрСмСнная.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² языкС C#

Знакомство с языком Π‘#, ΠΊΠ°ΠΊ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком, ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с изучСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ…ΠΎΠ΄Π΅ ΡƒΡ€ΠΎΠΊΠ° Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ.

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

Π’ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² языкС C# ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠžΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Если ΠΌΡ‹ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Ρ‡Ρ‚ΠΎ пСрСмСнная с Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… для Ρ†Π΅Π»Ρ‹Ρ… чисСл int, Ρ‚ΠΎ Π² Π½Π΅Ρ‘ ΠΌΡ‹ Π½Π΅ смоТСм Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ строку ΠΈΠ»ΠΈ число с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

Π’ Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ значСния Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½ΠΎ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ:

float some_value = 2.95f;
some_value = 6.9f; // Записали Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Рассмотрим всС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… для создания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π¦Π΅Π»Ρ‹Π΅ числа

  • byte — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния Ρ†Π΅Π»Ρ‹Ρ… чисСл. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл ΠΎΡ‚ -128 Π΄ΠΎ 127, Ссли число Π±ΡƒΠ΄Π΅Ρ‚ большим 127 ΠΈΠ»ΠΈ мСньшим -128 , Ρ‚ΠΎ выдастся ошибка;
  • short — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния Ρ†Π΅Π»Ρ‹Ρ… чисСл. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл ΠΎΡ‚ -32768 Π΄ΠΎ 32767;
  • int — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния Ρ†Π΅Π»Ρ‹Ρ… чисСл. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл ΠΎΡ‚ -2147483648 Π΄ΠΎ 2147483647;
  • long — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния Ρ†Π΅Π»Ρ‹Ρ… чисСл. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл ΠΎΡ‚ –9 223 372 036 854 775 808 Π΄ΠΎ 9 223 372 036 854 775 807.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ большиС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ long, Ссли число малСнькоС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‡Π΅ΠΌ большС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Ρ‚Π΅ΠΌ большС памяти трСбуСтся ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

Числа с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ

  • float — для создания чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл ΠΎΡ‚ ΠΎΡ‚ -3.4*1038 Π΄ΠΎ 3.4*1038;
  • double — для создания чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл ΠΎΡ‚ ΠΎΡ‚ Β±4.9*10-324 Π΄ΠΎ Β±1. 8*10308.

ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

  • bool — логичСский Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для записи истинного (true) ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ³ΠΎ (false) значСния;
  • char — Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с символами. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ символ;
  • string — Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… для тСкста. Π’ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ мноТСство слов.

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² языкС Π‘# Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

Для создания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π΅Ρ‘. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

int a = 0; // Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ значСния сразу
byte c; // Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π· значСния
short b, y = 342; // Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Для Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с Ρ‚ΠΈΠΏΠΎΠΌ float ΠΈΠ»ΠΈ double Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ послС числа Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ f ΠΈΠ»ΠΈ d соотвСтсвСнно.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Π‘ΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² си ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² си

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² си слуТат для хранСния,Β  измСнСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² си Π΅ΡΡ‚ΡŒΒ ΠΈΠΌΡ ΠΈ значСния. ЗначСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ си ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² си,Β  ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ сначала ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚ΠΈΠΏ ΠΈ имя.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² си

int a;Β  // объявлСна цСлочислСнная пСрСмСнная  с  Β ΠΈΠΌΠ΅Π½Π΅ΠΌΒ  a

float b, c;Β  //ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ вСщСствСнныС  ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅Β  b ΠΈ с

char e;Β  // объявлСна символьная пСрСмСнная с ΠΈΠΌΠ΅Π½Π΅ΠΌ e

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со  строкой символов Π² си ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ объявлСниС массива символов.
char имя строки[Π΄Π»ΠΈΠ½Π° строки];

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ объявлСния строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² си

charΒ  name[50]; //объявлСна строка с ΠΈΠΌΠ΅Π½Π΅ΠΌ nameΒ  Π΄Π»ΠΈΠ½ΠΎΠΉ 50

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡΒ  =
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ присваивания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² си

int a,b,c; // ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ цСлочислСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ a, b, c

a=10; //Β  ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10

b=20; //Β  ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β  20

c=a+b; // Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с присваиваСтся сумма a ΠΈ b

char c; // объявлСна символьная пСрСмСнная с

c=’V’; // символьной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ cΒ  присваиваСтся символ V

char name[50]; // объявлСна строка name

name=”Вася”;Β  // строкС присваиваСтся  тСкст Вася

Π—Π½Π°ΠΊΠΈ арифмСтичСских дСйствий с числовыми ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² си

+ β€” слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅

* / ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅

% остаток ΠΎΡ‚ дСлСния

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для числовых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

abs(i) ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа i

fabs(x) ΠΌΠΎΠ΄ΡƒΠ»ΡŒ вСщСствСнного числа x

sqrt(x) ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠ· вСщСствСнного числа x

pow(x,y) вычисляСт x Π² стСпСни y

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽΒ  Β ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡƒΡ€ΠΎΠΊΡƒΒ Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° экран Π² Π‘ΠΈ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Β 

Β 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Π‘# ~ ..:= Codder =:..




443

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ – это имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти. Π Π°Π½Π΅Π΅ ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ Ρ‚Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°. Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π”Π°Π½Π½Ρ‹Π΅, записанныС Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌΒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
C# – Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык. КаТдая пСрСмСнная Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. НиТС, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½Π°Π²Π΅Π΄Π΅Π½Ρ‹ встроСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… языка C#:

Π’ΠΈΠΏΠžΠ±Π»Π°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉΠ Π°Π·ΠΌΠ΅Ρ€
sbyte-128 Π΄ΠΎ 127Π—Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 8-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅
byte0 Π΄ΠΎ 255Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 8-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅
charU+0000 Π΄ΠΎ U+ffff16-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ символ Unicode
booltrue ΠΈΠ»ΠΈ false1 Π±Π°ΠΉΡ‚*
short-32768 Π΄ΠΎ 32767Π—Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 16-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅
ushort0 Π΄ΠΎ 65535Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 16-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅
int-2147483648 Π΄ΠΎ 2147483647Π—Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 32-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅
uint0 Π΄ΠΎ 4294967295Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 32-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅
long-9223372036854775808 Π΄ΠΎ 9223372036854775807Π—Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 64-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅
ulong0 Π΄ΠΎ 18446744073709551615Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 64-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅
floatΒ±1,5*10-45 Π΄ΠΎ Β±3,4*10334 Π±Π°ΠΉΡ‚Π°, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ β€” 7 разрядов
doubleΒ±5*10-324 Π΄ΠΎ Β±1,7*103068 Π±Π°ΠΉΡ‚ΠΎΠ², Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ β€” 16 разрядов
decimal(-7,9 * 1028 Π΄ΠΎ 7,9 * 1028) / (100–28)16 Π±Π°ΠΉΡ‚, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ β€” 28 разрядов

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° – это пСрСмСнная, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для гарантирования Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ измСнятся. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово  const

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ договоримся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΒ Β 

booltrue ΠΈΠ»ΠΈ false (По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” Β true)
stringΠ½Π°Π±ΠΎΡ€ символов
charодин символ
int-2147483648 Π΄ΠΎ 2147483647Π—Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 32-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅
floatΒ±1,5*10-45 Π΄ΠΎ Β±3,4*10334 Π±Π°ΠΉΡ‚Π°, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ β€” 7 разрядов
doubleΒ±5*10-324 Π΄ΠΎ Β±1,7*103068 Π±Π°ΠΉΡ‚ΠΎΠ², Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ β€” 16 разрядов
long-9223372036854775808 Π΄ΠΎ 9223372036854775807Π—Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 64-Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅

Π’ΠΠ–ΠΠž!. C#Β  рСгистрозависимый язык программирования. Для Π½Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Area, area,Β  ΠΈ Ρ‚.Π΄ это РАЗНЫЕ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΠ± этом, Π΄Π°Π±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Как ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡ… Ρ‚ΠΈΠΏ? ΠŸΡ€ΠΎΡΡ‚ΠΎβ€¦

Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ ΠΈ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. НапримСр


int age, height;

C# допускаСтся присвоСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ значСния сразу ΠΆΠ΅ ΠΏΡ€ΠΈ объявлСнии


int age = 35, height = 180;
bool answer=true;
const  int months = 12; 

ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ называСтся ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Если Π²Ρ‹ нашли ΠΎΡˆΠΈΠ±ΠΊΡƒ, поТалуйста, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+Enter.

ΠŸΠΎΡ…ΠΎΠΆΠ΅Π΅



ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°, пСрСмСнная β€” это Π±Π°Π·ΠΎΠ²Ρ‹Π΅ понятия Π² любом языкС
программирования. Π”Π°Π΄ΠΈΠΌ ΠΈΠΌ опрСдСлСния.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° β€” это Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, которая ΠΏΡ€ΠΈ
Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ остаётся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ β€” это ячСйка памяти для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ
хранСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.

ОписаниС ΠΈ инициализация ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½Π°Π΄ΠΎ Π΄Π°Ρ‚ΡŒ
Π΅ΠΉ описаниС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ имя ΠΈΠΌΠ΅Π΅Ρ‚
пСрСмСнная ΠΈ ΠΊΠ°ΠΊΠΎΠ² Π΅Ρ‘ Ρ‚ΠΈΠΏ. Π’Π½Π°Ρ‡Π°Π»Π΅ указываСтся Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π°
Π·Π°Ρ‚Π΅ΠΌ Π΅Ρ‘ имя. НапримСр:


int k; // это
пСрСмСнная Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° int


double x; // это
пСрСмСнная вСщСствСнного Ρ‚ΠΈΠΏΠ° ΡƒΠ΄Π²ΠΎΠ΅Π½Π½ΠΎΠΉ точности

Если имССтся
нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ допускаСтся ΠΈΡ… описаниС Ρ‡Π΅Ρ€Π΅Π·
Π·Π°ΠΏΡΡ‚ΡƒΡŽ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


double a, b, c;

ПослС описания
ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: Π° ΠΊΠ°ΠΊΠΎΠ΅
Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ пСрСмСнная сразу ΠΆΠ΅ послС Π΅Ρ‘ описания? ΠžΡ‚Π²Π΅Ρ‚
Ρ‚Π°ΠΊΠΎΠ²: Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° языкС C ΠΈΠ»ΠΈ C++
пСрСмСнная послС описания ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅,
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΅ΠΉ просто выдСляСтся свободный участок памяти ΠΈ Π½Π° этом всё
заканчиваСтся. Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ хранится Ρ‚Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ…
Ρ†ΠΈΡ„Ρ€, которая Π±Ρ‹Π»Π° Ρ‚Π°ΠΌ Π΄ΠΎ выдСлСния памяти ΠΏΠΎΠ΄ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π’Π°ΠΊΠΎΠΉ
ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚Π°ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ошибкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²
Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ Π±Ρ‹Π»ΠΎ присвоСно Π½ΠΈ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:


double x, y;


y = 2 * x;

Π’Π°ΠΊ ΠΊΠ°ΠΊ
пСрСмСнная x
Π½ΠΈ ΠΊΠ°ΠΊ Π½Π΅ Π±Ρ‹Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°, Ρ‚.Β Π΅. ΠΈΠΌΠ΅Π»Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅
Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Ρ‡Π°Ρ‰Π΅ всСго β€” это ΠΎΡ‡Π΅Π½ΡŒ большоС число ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ β€”
ΠΎΡ‡Π΅Π½ΡŒ малСнькоС), Ρ‚ΠΎ ΠΈ пСрСмСнная y
ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ явно Π½Π΅ Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ рассчитывал
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ошибки, Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚
ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ просто Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄
ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΈ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌ ΠΏΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ значСния. НапримСр:


double a=3, b=4, c=5;

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

Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΈ использованиС констант

Π’Ρ‹ΡˆΠ΅ Π±Ρ‹Π»ΠΎ Π΄Π°Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ констант. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ с
константами Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

ВсС константы Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°
Π΄Π²Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы ΠΈ константы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚
собствСнного ΠΈΠΌΠ΅Π½ΠΈ. НапримСр:

25
β€” константа Ρ†Π΅Π»ΠΎΠ³ΠΎ
Ρ‚ΠΈΠΏΠ°;

3.14
β€” вСщСствСнная константа;

‘A’
β€” символьная
константа.

ВсС Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ здСсь константы Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½ΠΈ, ΠΎΠ½ΠΈ Π·Π°Π΄Π°Π½Ρ‹
своим внСшним прСдставлСниСм ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅
нСпосрСдствСнно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ:


int k=25; // пСрСмСнная
k ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° константой β€” Ρ†Π΅Π»Ρ‹ΠΌ
числом 25.

Π’ рядС случаСв
константС ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π΄Π°Ρ‚ΡŒ имя ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ
это дСлаСтся для матСматичСских ΠΈΠ»ΠΈ физичСских констант.

Π’ языкС C Π±Ρ‹Π»
СдинствСнный способ создания ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ…
констант
β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора #define,
Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


#define PI 3. 14


……………


double t;


t = PI * 2; // здСсь
использована имСнованная константа PI, заданная
Π²Ρ‹ΡˆΠ΅

Π’
языкС C++ появился Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ способ β€”
использованиС константных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…,
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
Рассмотрим Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:


const double PI=3.14; // здСсь
PI β€”
константная пСрСмСнная


double t;


t=PI * 2;

Π’
Ρ‡Ρ‘ΠΌ прСимущСство ΠΎΡ‚ использования константных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… вмСсто
задания констант с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора #define?
Всё ΠΎΡ‡Π΅Π½ΡŒ просто: ΠΏΡ€ΠΈ использовании константной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ компилятор
провСряСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ задания константы, ΠΈ Ссли ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Π½Π°
Π½Π΅Π²Π΅Ρ€Π½ΠΎ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½Π° ошибка ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄Π°Π½ΠΎ
ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ константной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Если использована имСнованная
константа, заданная Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ прСпроцСссора #define,
Ρ‚ΠΎ ошибка Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ константа.
НапримСр:


// Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅
прСпроцСссора сдСлаСм ΠΎΡˆΠΈΠ±ΠΊΡƒ:


#define PI ююю


…………..


double t;


t = PI * 2; // Π² этой строкС
компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ,


Β Β Β Β Β Β Β Β Β Β Β Β //
хотя Π½Π° самом Π΄Π΅Π»Π΅ ошибка Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅!




C ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, константы ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

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

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ пСрСмСнная — это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ (ΠΎΠ±Π»Π°ΡΡ‚ΡŒ хранСния) для хранСния Π΄Π°Π½Π½Ρ‹Ρ….

Для обозначСния области хранСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ присвоСно ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€). ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… — это просто символичСскоС прСдставлСниС области памяти. НапримСр:

  int playerScore = 95;  

Π—Π΄Π΅ΡΡŒ playerScore — это пСрСмСнная Ρ‚ΠΈΠΏΠ° int . Π—Π΄Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ присвоСно цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 95 .

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

  char ch = 'Π°';
// ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ΄
ch = 'l';  

ΠŸΡ€Π°Π²ΠΈΠ»Π° присвоСния ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

  1. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Ρ‹ (ΠΊΠ°ΠΊ прописныС, Ρ‚Π°ΠΊ ΠΈ строчныС), Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ символ подчСркивания.
  2. ΠŸΠ΅Ρ€Π²Π°Ρ Π±ΡƒΠΊΠ²Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π±ΡƒΠΊΠ²ΠΎΠΉ ΠΈΠ»ΠΈ Π·Π½Π°ΠΊΠΎΠΌ подчСркивания.
  3. НСт ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠΌΠ΅Π½ΠΈ (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Однако Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… компиляторах ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ссли имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Π½Π΅Π΅ 31 символа.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’Ρ‹ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. НапримСр: firstName — Π»ΡƒΡ‡ΡˆΠ΅Π΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‡Π΅ΠΌ fn .

C — язык со строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ объявлСн. НапримСр:

  int number = 5; // цСлочислСнная пСрСмСнная
число = 5,5; // ошибка
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ€; // ошибка  

Π—Π΄Π΅ΡΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ number int . Π­Ρ‚ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ нСльзя ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (дСсятичноС) 5.5 . ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° double . ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ дСсятичныС значСния Π² C, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ Π»ΠΈΠ±ΠΎ double , Π»ΠΈΠ±ΠΎ float .

ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ эту страницу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ пСрСмСнная.


Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ — это Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для прСдставлСния фиксированных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прямо Π² ΠΊΠΎΠ΄Π΅.НапримСр: 1 , 2,5 , ‘c’ ΠΈ Ρ‚. Π”.

Π—Π΄Π΅ΡΡŒ 1 , 2,5 ΠΈ ‘c’ — Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ этим условиям Ρ€Π°Π·Π½Ρ‹Π΅ значСния.


1. Π¦Π΅Π»Ρ‹Π΅ числа

Π¦Π΅Π»ΠΎΠ΅ число — это числовой Π»ΠΈΡ‚Π΅Ρ€Π°Π» (связанный с числами) Π±Π΅Π· Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ части. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° C Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° цСлочислСнных Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ²:

  • дСсятичноС (основаниС 10)
  • Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ (основаниС 8)
  • ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ (основаниС 16)

НапримСр:

ДСсятичный: 0, -9, 22 ΠΈ Ρ‚.  Π”.
Π’ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ: 021, 077, 033 ΠΈ Ρ‚. Π”.
ШСстнадцатСричный: 0x7f, 0x2a, 0x521 ΠΈ Ρ‚. Π”. 

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° C Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ начинаСтся с 0 , Π° ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ — с 0x .


2. Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой

Π›ΠΈΡ‚Π΅Ρ€Π°Π» с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой — это числовой Π»ΠΈΡ‚Π΅Ρ€Π°Π», ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π»ΠΈΠ±ΠΎ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ, Π»ΠΈΠ±ΠΎ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. НапримСр:

-2,0
0,0000234
-0,22E-5 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: E-5 = 10 -5


3. ΠŸΠ΅Ρ€ΡΠΎΠ½Π°ΠΆΠΈ

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» создаСтся Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. НапримСр: ‘a’ , ‘m’ , ‘F’ , ‘2’ , ‘}’ ΠΈ Ρ‚. Π”.


4. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ±Π΅Π³Π°

Иногда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя ввСсти ΠΈΠ»ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ особоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° C. НапримСр: новая строка (Π²Π²ΠΎΠ΄), табуляция, Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ ΠΈ Ρ‚. Π”.

Для использования этих символов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ±Π΅Π³Π°
ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ±Π΅Π³Π° ΠŸΠ΅Ρ€ΡΠΎΠ½Π°ΠΆ
\ b Backspace
\ f ΠŸΠΎΠ΄Π°Ρ‡Π° Ρ„ΠΎΡ€ΠΌΡ‹
\ ΠΏ Новая строка
Π’ΠΎΠ·Π²Ρ€Π°Ρ‚
\ Ρ‚ Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ выступ
\ v Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ язычок
\ ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ косая Ρ‡Π΅Ρ€Ρ‚Π°
\ ' ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ
\ " Π”Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ
\? Π’ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ
\ 0 ΠŸΡƒΡΡ‚ΠΎΠΉ символ

НапримСр: \ n ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½ΠΎΠ²ΠΎΠΉ строки. ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ косая Ρ‡Π΅Ρ€Ρ‚Π° \ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ способа ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ символов компилятором.


5. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. НапримСр:

"Ρ…ΠΎΡ€ΠΎΡˆΠΎ" // строковая константа
"" // нулСвая строковая константа
"" // строковая константа ΠΈΠ· ΡˆΠ΅ΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²
"x" // строковая константа, состоящая ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа.
"ЗСмля круглая \ n" // Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ строку с Π½ΠΎΠ²ΠΎΠΉ строкой 

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹

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

  const Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ PI = 3,14;  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово const .

Π—Π΄Π΅ΡΡŒ PI — символичСская константа; Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ.

  const Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ PI = 3,14;
PI = 2,9; // Ошибка  

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ константу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора #define . ΠœΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΎΠ± этом Π² руководствС ΠΏΠΎ макросам C.

ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… C ++


ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ C ++

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ — это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ C ++ сущСствуСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • int — сохраняСт Ρ†Π΅Π»Ρ‹Π΅ числа (Ρ†Π΅Π»Ρ‹Π΅ числа) Π±Π΅Π· дСсятичных Π·Π½Π°ΠΊΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 123 ΠΈΠ»ΠΈ -123
  • double — Ρ…Ρ€Π°Π½ΠΈΡ‚ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой с дСсятичными Π·Π½Π°ΠΊΠ°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 19,99 ΠΈΠ»ΠΈ -19,99
  • char — Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ символы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«aΒ» ΠΈΠ»ΠΈ Β«BΒ».
    ЗначСния символов Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ
  • строка — Ρ…Ρ€Π°Π½ΠΈΡ‚ тСкст, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«Hello WorldΒ».Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ значСния Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ
  • bool — сохраняСт значСния с двумя состояниями:
    ΠΏΡ€Π°Π²Π΄Π° ΠΈΠ»ΠΈ лоТь

ОбъявлСниС (созданиС) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Для создания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Бинтаксис

Ρ‚ΠΈΠΏ пСрСмСнная = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ;

Π“Π΄Π΅ Ρ‚ΠΈΠΏ — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² C ++ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, int ), ΠΈ
пСрСмСнная — это имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, x ΠΈΠ»ΠΈ
myName ). Π—Π½Π°ΠΊ равСнства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для присвоСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая Π΄ΠΎΠ»ΠΆΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ число, посмотритС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ myNum Ρ‚ΠΈΠΏΠ° int ΠΈ присвойтС Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 15 :

int myNum = 15;
cout << myNum;

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π΅Π· присвоСния значСния ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΆΠ΅:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ присвоитС Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

int myNum = 15; // myNum Ρ€Π°Π²Π½ΠΎ 15
myNum = 10; // Π’Π΅ΠΏΠ΅Ρ€ΡŒ myNum Ρ€Π°Π²Π½ΠΎ 10
cout << myNum; // Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 10

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹

ДСмонстрация Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

int myNum = 5;
// Π¦Π΅Π»ΠΎΠ΅ число (Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· дСсятичных Π·Π½Π°ΠΊΠΎΠ²)
double myFloatNum = 5.99;
// Число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (с дСсятичными Π·Π½Π°ΠΊΠ°ΠΌΠΈ)
char myLetter = ‘D’;
// Π‘ΠΈΠΌΠ²ΠΎΠ»
string myText = «Hello»;
// Π‘Ρ‚Ρ€ΠΎΠΊΠ° (тСкст)
bool
myBoolean = true; // логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (истина ΠΈΠ»ΠΈ
лоТь)

Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ большС ΠΎΠ± ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… Π² Π³Π»Π°Π²Π΅ Β«Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…Β».


ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ cout ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с <<
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для отобраТСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ тСкст ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈΡ… символом <<
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:


Π‘Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вмСстС

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ +
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:


ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² C ++

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ - это имя, связанноС со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. НапримСр, ΠΊΠΎΠ³Π΄Π° я ΠΏΠΈΡˆΡƒ int num = 20; здСсь имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ - num, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ связано со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 20, int - это Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт, Ρ‡Ρ‚ΠΎ эта пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ цСлочислСнныС значСния.ΠœΡ‹ рассмотрим Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ обсудим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Бинтаксис объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² C ++

 Ρ‚ΠΈΠΏ_Π΄Π°Π½Π½Ρ‹Ρ… имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1, имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅2; 

НапримСр:

 int num1 = 20, num2 = 100; 

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ это Ρ‚Π°ΠΊ:

 int num1, num2;
число1 = 20;
число2 = 100; 

Π’ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² зависимости ΠΎΡ‚ ΠΈΡ… Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, доступныС Π² C ++.

int : Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… содСрТит цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

char : содСрТит ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ значСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«cΒ», Β«FΒ», Β«BΒ», Β«pΒ», Β«qΒ» ΠΈ Ρ‚. Π”.

bool : содСрТит логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true ΠΈΠ»ΠΈ false.

double : Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности.

с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой : Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ точности.

Π’ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² зависимости ΠΎΡ‚ ΠΈΡ… области дСйствия

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΠ΄Ρ‚ΠΈ дальшС, Π΄Π°Π²Π°ΠΉΡ‚Π΅ сначала обсудим, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия. Когда ΠΌΡ‹ обсуТдали ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Hello World, ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 int main {

// Какой-Ρ‚ΠΎ ΠΊΠΎΠ΄

} 

Π›ΡŽΠ±Π°Ρ пСрСмСнная, объявлСнная Π²Π½ΡƒΡ‚Ρ€ΠΈ этих Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ этими Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками. Если Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main () ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main (), Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ поняли, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² зависимости ΠΎΡ‚ области видимости.

1. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная
2. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, объявлСнная Π²Π½Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ), называСтся глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ свою ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΏΠΎ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ Π² любом мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² основном, Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ это:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Π—Π΄Π΅ΡΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ глобальная пСрСмСнная myVar , объявлСнная Π²Π½Π΅ main.ΠœΡ‹ Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π»ΠΈΡΡŒ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main () Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

 #include 
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ пространство ΠΈΠΌΠ΅Π½ std;
// Π­Ρ‚ΠΎ глобальная пСрСмСнная
char myVar = 'A';
int main ()
{
   cout << "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar:" << myVar << endl;
   myVar = 'Z';
   cout << "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar:" << myVar;
   Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
} 

Π’Ρ‹Ρ…ΠΎΠ΄:

 Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar: A
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar: Z 

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках любой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹Ρ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (if, if-else ΠΈ Ρ‚. Π”.), И ΠΈΡ… ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° этими Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
 #include 
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ пространство ΠΈΠΌΠ΅Π½ std;

char myFuncn () {
// Π­Ρ‚ΠΎ локальная пСрСмСнная
char myVar = 'A';
}
int main ()
{
   cout << "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar:" << myVar << endl;
   myVar = 'Z';
   cout << "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar:" << myVar;
   Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
} 

Π’Ρ‹Π²ΠΎΠ΄:
Ошибка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ пытаСмся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ myVar Π²Π½Π΅ Π΅Π΅ области.ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия myVar ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρ‚Π΅Π»ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ myFuncn () Π²Π½ΡƒΡ‚Ρ€ΠΈ этих Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок.

ΠœΠΎΠ³ΡƒΡ‚ Π»ΠΈ глобальная ΠΈ локальная ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ имя Π² C ++?

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ глобальной ΠΈ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

 #include 
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ пространство ΠΈΠΌΠ΅Π½ std;
// Π­Ρ‚ΠΎ глобальная пСрСмСнная
char myVar = 'A';
char myFuncn () {
   // Π­Ρ‚ΠΎ локальная пСрСмСнная
   char myVar = 'B';
   return myVar;
}
int main ()
{
   cout << "Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:" << myFuncn () << endl;
   cout << "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar:" << myVar << endl;
   myVar = 'Z';
   cout << "Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:" << myFuncn () << endl;
   cout << "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar:" << myVar << endl;
   Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
} 

Π’Ρ‹Ρ…ΠΎΠ΄:

 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ²: B
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar: A
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ²: B
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar: Z 

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° я ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ myVar Π² основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, это ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ myVar , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ myVar ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ myFuncn () .

ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² C - C Programming Tutorial

  1. Π”ΠΎΠΌ
  2. Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° C
  3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² C


 int a = 12, b = 100;
ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ f = 1,2;
char ch = 'Π°';
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ d1, d2, d3 = 1,2;
 



auto break int return
char16

рСгистр со Π·Π½Π°ΠΊΠΎΠΌ
const ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ статичСский
ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

9

Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π΅Ρ‰Π΅ struct ΡˆΡ‚ΡƒΡ†Π΅Ρ€
enum extern extern для Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ
goto Ссли ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²Ρ‹Π΅ Π»Π΅Ρ‚ΡƒΡ‡ΠΈΠ΅ условныС обозначСния

int x = 10;

char ch = 'Π°';

int speed = 50; / * минимальная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π½Π° шоссС * /

int speed = 50, limit, x, y;

int x = 10;

int y;

Ρ… = 20;

Ρƒ = Ρ…;

рСгистр int i;

for (i = 0; i <1000; i ++) {

// ...

}