Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)

БвязанныС понятия

ΠŸΠΎΠ±ΠΎΜΡ‡Π½Ρ‹Π΅ эффС́кты (Π°Π½Π³Π». side effects) β€” Π»ΡŽΠ±Ρ‹Π΅ дСйствия Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ срСду выполнСния (Π°Π½Π³Π». execution environment). НапримСр, ΠΊ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ эффСктам относятся.

Упоминания Π² Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅

БвязанныС понятия (ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅)

Π’ языках программирования объявлС́ниС (Π°Π½Π³Π». declaration) Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Ρ‚ΠΈΠΏΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… аспСктов элСмСнтов языка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ОбъявлСниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ компилятор ΠΎ сущСствовании элСмСнта; это вСсьма Π²Π°ΠΆΠ½ΠΎ для ΠΌΠ½ΠΎΠ³ΠΈΡ… языков (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π‘ΠΈ), Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… использованиСм.

Из-Π·Π° ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ словом Β«ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Β» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (Π°Π½Π³Π». operator), см. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅).Π˜Π½ΡΡ‚Ρ€ΡƒΜΠΊΡ†ΠΈΡ ΠΈΠ»ΠΈ опСра́тор (Π°Π½Π³Π». statement) β€” наимСньшая автономная Ρ‡Π°ΡΡ‚ΡŒ языка программирования; ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСт собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ инструкций.

Π’ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, спи́сок (Π°Π½Π³Π». list) β€” это абстрактный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой упорядочСнный Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°. ЭкзСмпляр списка являСтся ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ матСматичСского понятия ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

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

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

По ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· классификаций, языки программирования Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ дСлятся Π½Π° сильно ΠΈ слабо Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (Π°Π½Π³Π». strongly and weakly typed), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠ΅ сильной ΠΈΠ»ΠΈ слабой систСмой Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ, ΠΈ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для указания Π½Π° достоинства ΠΈ нСдостатки ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ понятия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ приводят ΠΊ Π½Π°Π·Ρ‹Π²Π°Π½ΠΈΡŽ Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… систСм Ρ‚ΠΈΠΏΠΎΠ² Β«ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈΒ» ΠΈΠ»ΠΈ «слабыми».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Β© М.Π•. ΠšΡ€Π΅ΠΊΠΈΠ½, 1999, 2002

Π“Π»Π°Π²Π° 5
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Как Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π±Ρ‹Π»ΠΈ массовыми. Π’ этой Π³Π»Π°Π²Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

это ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ :Π°
ΠΏΠΎ
ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈ 4 [Π²ΠΏ :Π° ΠΏΡ€ 90]
ΠΏΠΏ
ΠΊΠΎΠ½Π΅Ρ†

ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. Однако, Π² Π›ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ (Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»Π°!) ставится Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅.

Рассмотрим Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ исполнСнии ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ящика, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π°ΠΊΠ»Π΅Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’ этот ящик ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π² любоС врСмя ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ находится, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ хранящССся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Допустим, ΠΌΡ‹ Π΄Π°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ послС Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ стоит «:Π°». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ число 70 ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ Π² «ΡΡ‰ΠΈΠΊ» с Ρ‚Π°ΠΊΠΎΠΉ «Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠΎΠΉ». Π’Π΅ΠΏΠ΅Ρ€ΡŒ начинаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ самой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. ΠžΠΏΡƒΡΠΊΠ°Π΅Ρ‚ΡΡ ΠΏΠ΅Ρ€ΠΎ, ΠΈ Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ». Π’ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «Π²ΠΏ :Π°», ΠΎΠ½Π° смотрит, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «Π»Π΅ΠΆΠΈΡ‚ Π² ящикС», ΠΈ подставляСт Π΅Π³ΠΎ Π² эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Π‘Π°ΠΌΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈ этом Π½Π΅ мСняСтся.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π° нСсколько. НапримСр:

это ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ :a :b
ΠΏΠΎ
ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈ 2 [Π²ΠΏ :a ΠΏΡ€ 90 Π²ΠΏ :b ΠΏΡ€ 90]
ΠΏΠΏ
ΠΊΠΎΠ½Π΅Ρ†

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π£Ρ€ΠΎΠΊ β„–13. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Обновл. 11 БСн 2021 |

На ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ функция ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² caller, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return. На этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

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

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

АргумСнт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ пСрСдаСтся ΠΈΠ· caller-Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ указываСтся Π² скобках ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² caller-Π΅:

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

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ?

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

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² caller.

НапримСр, простая функция, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° Ρ†Π΅Π»Ρ‹Ρ… числа ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… сумму:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π•Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Рассмотрим Π΅Ρ‰Π΅ нСсколько Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π‘ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ двумя Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ всё понятно.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΠ°Ρ€Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ лёгкая для понимания:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Π²Ρ‹Π·ΠΎΠ² послоТнСС:

add(1, multiply(2, 3)) => add(1, 6) => 7

ПослСдний Π²Ρ‹Π·ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТным ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ add() являСтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² add():

add(1, add(2, 3)) => add(1, 5) => 6

Π—Π°Π΄Π°Π½ΠΈΠ΅ β„–1: Π§Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΠ΄Π°?

Π—Π°Π΄Π°Π½ΠΈΠ΅ β„–2: КакиС здСсь Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹?

Π—Π°Π΄Π°Π½ΠΈΠ΅ β„–3: Какой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹?

Π—Π°Π΄Π°Π½ΠΈΠ΅ β„–4: ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ doubleNumber(), которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΡƒΠ΄Π²Π°ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² caller.

Π—Π°Π΄Π°Π½ΠΈΠ΅ β„–5: ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ std::cin), ΡƒΠ΄Π²Π°ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ doubleNumber() ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ задания, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° экран.

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

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

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

Ѐункция multiply() ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° void, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ эта функция Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния. Но, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° всС Ρ€Π°Π²Π½ΠΎ пытаСтся Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΎΡ‚ компилятора. Ѐункция Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° int.

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

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β„–1: main() ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² multiply(), Π½ΠΎ multiply() ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β„–2: multiply() вычисляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ присваиваСт Π΅Π³ΠΎ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² main(). А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ multiply() β€” int, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ (Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… компиляторах) ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ (Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… компиляторах).

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°)

Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ Β«Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹Β» (= ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅; ΠΏΡ€ΠΈΠΌΠ΅Ρ€ πŸ™‚ (

Если Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ пСрСдаСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ (ΠΏΠΎΠ΄) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартноС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, сдСланноС ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠ»ΠΈ (Π² зависимости ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ) ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Π° ΠΈΠ·-Π·Π° отсутствия ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

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

НазначСниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ систСмы ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ; ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π‘. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… функциях ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ:

ΠŸΡ€ΠΈ использовании Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Π°ΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Для этого Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° обнаруТСния:

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

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΏΠΎ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

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

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ примСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

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

БМИ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² / Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ Ρ‡Π΅Ρ€Π΅Π· стСк

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

Π’ основном ΠΏΠ°ΠΌΡΡ‚ΡŒ процСссоров дСлится Π½Π°

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΅ΡΡ‚ΡŒ свой стСк. Π’ этом ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ:

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

ЗначСния ΠΈΠ»ΠΈ ссылки / ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Π’Ρ‹Π·ΠΎΠ² function(data) Π±Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ссылки & ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ синтаксичСской ошибкС. Π’ C, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли извСстСн ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ C ΠΈΠ»ΠΈ C ++ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ вмСсто ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠΉ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ссылок. Выглядит это Ρ‚Π°ΠΊ:

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

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ запись Ρ‡Π΅Ρ€Π΅Π· ссылочныС Π΄Π°Π½Π½Ρ‹Π΅

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках программирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ записаны ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ с использованиСм ссылок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² C ΠΈ C ++:

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ относится ΠΊ Java. ΠžΡ‚Π²Π΅Ρ‚Π½Π°Ρ рСакция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ слСдуСт ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ значСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π° Π½ΠΈΡ… Π²Π»ΠΈΡΡ‚ΡŒ. Π’ C ++ (ΠΈΠ»ΠΈ Π² C) ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ здСсь с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом, const Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ указанная (указанная) ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ постоянная. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, const Type* Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ написано, являСтся синтаксичСски ΠΈ сСмантичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ. Волько Π² этом случаС ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½ΡƒΡŽ постоянной. ΠŸΠΎΡΡ‚Ρ€ΠΎΠΉΠΊΠ°

Однако Π² C ΠΈ C ++ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ указатСля Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈ этом ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ для записи Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти. Π’Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² особых случаях ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·Π²Π½Π΅.

Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Java ΠΈ C ++ ссылка Π½Π° this Π΄Π°Π½Π½Ρ‹Π΅ класса нСявно пСрСдаСтся с ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всСгда ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свои собствСнныС Π΄Π°Π½Π½Ρ‹Π΅ для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса.

РСализация Π½Π° машинном ΡƒΡ€ΠΎΠ²Π½Π΅

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

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

Π’ качСствС ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ сгСнСрированный ΠΊΠΎΠ΄ ассСмблСра ( ассСмблСр 80×86 ) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ простой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для Π·Π²ΠΎΠ½ΠΊΠ°: float y = parabel(2.0F);

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ рукописный ΠΊΠΎΠ΄ ассСмблСра для сигнального процСссора ADSP-216x ΠΎΡ‚ Analog Devices для Π²Ρ‹Π·ΠΎΠ²Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· C:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ тСхничСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: объявлСниС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² языках программирования PASCAL ΠΈ Delphi с x ΠΈ y Π² качСствС Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ здСсь x ΠΈ y ΡΠ²Π»ΡΡŽΡ‚ΡΡ заполнитСлями для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ фактичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

ЀактичСскиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ»ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ фактичСскими ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

Подсказка Ρ‚ΠΈΠΏΠΎΠ²

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ фактичСскими

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² фактичСскими ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

Π’ макросС Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚Π΅ΠΊΡΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ замСняСтся фактичСским ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠΌΠ΅Π½ΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π½. Если Π² фактичСском ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Π΅ΡΡ‚ΡŒ пСрСмСнная, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ совпадаСт с ΠΈΠΌΠ΅Π½Π΅ΠΌ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, локальная пСрСмСнная ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для раскрытия макроса.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ОбъяснСниС: ΠŸΡ€ΠΈΠ·Ρ‹Π²Ρ‹ test Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ a ΠΈ b, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ сохраняли своС исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Ρ‹Π²ΠΎΠ΄ для справочных ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ( Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎ ссылкС )

Π’Ρ‹Π²ΠΎΠ΄ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° значСния ( Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ )

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΏΠΎΠ΄ Windows

Π’ DOS (Π² традициях OpenVMS ) Β«/Β» Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСсто Β«-Β», Π° значСния ΠΈΠΌΠ΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Β«=Β». Оба стиля ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Windows.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠžΠ”Π•Π Π–ΠΠΠ˜Π•

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

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° C :

Код, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Sum, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ конвСнция Π² Π­ΠΉΡ„Π΅Π»Π΅

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ стандартноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

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

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°

АргумСнты ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

АргумСнты ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ частный случай списка Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

Бписки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹

Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

НСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языках

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π²ΠΎΠ΄ ΠΈ Π²Π²ΠΎΠ΄ / Π²Ρ‹Π²ΠΎΠ΄, ΠΏΡ€ΠΈ этом Π²Ρ‹Π²ΠΎΠ΄ рассматриваСтся ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ использованиС Π²Π²ΠΎΠ΄Π° / Π²Ρ‹Π²ΠΎΠ΄Π°, Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ (Π½ΠΎ Π½Π΅ Π²Π²ΠΎΠ΄ / Π²Ρ‹Π²ΠΎΠ΄). Π Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ зависит ΠΎΡ‚ языка: Π² Fortran 90 Π²Π²ΠΎΠ΄ / Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π² C # ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΡ… SQL Π²Π²ΠΎΠ΄ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° Π² TScript ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ явно указываСтся ΠΊΠ°ΠΊ Π²Π²ΠΎΠ΄ ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄.

БинтаксичСски Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ указываСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Π² объявлСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, void f(out int x) Π² C #. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ часто ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Π΅Ρ† списка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ, хотя это Π½Π΅ всСгда ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ. TScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° Π² объявлСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСчислСны Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ (:), ΠΈ Π½Π΅Ρ‚ Ρ‚ΠΈΠΏΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° для самой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ Π² этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая вычисляСт Ρ€Π°Π·ΠΌΠ΅Ρ€ тСкста. Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² C, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

АналогичныС сообраТСния ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρƒ значСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π³Π΄Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сохраняСтся Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

НСдостатки

ΠΏΡ€ΠΈ записи с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Π²Π²ΠΎΠ΄Π° / Π²Ρ‹Π²ΠΎΠ΄Π° вмСсто этого становится (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ F это Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° G Π²Π²ΠΎΠ΄Π° / Π²Ρ‹Π²ΠΎΠ΄Π°):

Π’ особом случаС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΎΠ΄Π½ΠΈΠΌ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ / Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈ Π±Π΅Π· Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния, композиция Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, Ссли Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ / Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (ΠΈΠ»ΠΈ Π² C / C ++, Π΅Π³ΠΎ адрСс) Ρ‚Π°ΠΊΠΆΠ΅ возвращаСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π² этом случаС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅ становится:

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌ использования Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ВмСсто этого для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° значСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ΅ объСдинСниС ; Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными случаями ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΡ‹, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL ( Ρ‚ΠΈΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ), Π³Π΄Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ NULL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° сбой. Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚ΠΈΠΏ, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. НапримСр, Π² Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ:

ΠΈΠ»ΠΈ, Π±ΠΎΠ»Π΅Π΅ ΠΈΠ΄ΠΈΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ:

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

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *