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

ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π΅ΠΉ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнтам ΠΈΠ·-Π·Π° особСнностСй синтаксиса ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π³Π΄Π΅ индСксация ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Π² 1Π‘ принят Π½ΡƒΠ»Π΅Π²ΠΎΠΉ базис. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ индСкс 0, Π° послСдний β€” Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ частым ошибкам выполнСния.

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

Бинтаксис прямого обращСния ΠΊ элСмСнту

Π‘Π°ΠΌΡ‹ΠΉ распространСнный способ retrieve Π΄Π°Π½Π½Ρ‹Ρ… β€” использованиС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок сразу послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Бинтаксис ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост: Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ имя массива ΠΈ Π² скобках ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ числовой индСкс. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ 1Π‘ автоматичСски опрСдСляСт Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ записано Π² ячСйку Ρ€Π°Π½Π΅Π΅.

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ чтСния. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Массив, Π·Π°Ρ‚Π΅ΠΌ заполняСм Π΅Π³ΠΎ ΠΈ обращаСмся ΠΊ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ элСмСнту.

МойМассив = Новый Массив();

МойМассив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ");

МойМассив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π’Ρ‚ΠΎΡ€ΠΎΠΉ");

МойМассив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π’Ρ€Π΅Ρ‚ΠΈΠΉ");

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = МойМассив[2]; // ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ строку "Π’Ρ€Π΅Ρ‚ΠΈΠΉ"

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

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π’ΠΈΠΏΠ—Π½Ρ‡() для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ссли Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… хранится Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ячСйкС массива Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния.

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

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ индСксации ΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ значСния

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ индСксация всСгда начинаСтся с нуля. Π­Ρ‚ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ 1Π‘ ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, языка Visual Basic ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… настроСк Π² старых вСрсиях BASIC, Π³Π΄Π΅ счСт ΠΌΠΎΠ³ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Π Π°Π·ΠΌΠ΅Ρ€ массива, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· свойство ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ(), всСгда Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ большС максимального доступного индСкса.

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ элСмСнт ΠΏΠΎ индСксу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π²Π΅Π½ количСству элСмСнтов ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π΅Π³ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ. БистСма выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ «ИндСкс находится Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† массива». Π­Ρ‚ΠΎ стандартная Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ТСстко Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ числа (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, [5]) Π² Ρ†ΠΈΠΊΠ»Π°Ρ… Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ, ΠΈ ваш ΠΊΠΎΠ΄ пСрСстанСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Для бСзопасной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с послСдним элСмСнтом часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Массив[Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1]. Π­Ρ‚ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ послСднСго элСмСнта нСзависимо ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Однако ΠΏΠ΅Ρ€Π΅Π΄ этим всС Ρ€Π°Π²Π½ΠΎ стоит ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ массив Π½Π΅ пуст.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠ³ΠΎ индСкса начинаСтся отсчСт Π² массивах 1Π‘?
Π‘ нуля
Π‘ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹
Зависит ΠΎΡ‚ настройки
Π‘ минус Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹

ΠŸΡƒΡΡ‚ΠΎΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ количСство элСмСнтов, Ρ€Π°Π²Π½ΠΎΠ΅ Π½ΡƒΠ»ΡŽ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту [0] Π² пустом массивС Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° пустоту являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ этапом ΠΏΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌ прямым доступом ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ.

БСзопасноС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ устойчивым ΠΊ измСнСниям Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³Ρ€Π°Π½ΠΈΡ† ΠΏΠ΅Ρ€Π΅Π΄ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π³Π΄Π΅ нСльзя Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Если. ΠœΡ‹ сравниваСм ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ индСкс с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ(). Волько Ссли индСкс мСньшС количСства элСмСнтов ΠΈ большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, ΠΌΡ‹ выполняСм Ρ‡Ρ‚Π΅Π½ΠΈΠ΅.

ИндСкс = 5;

Если ИндСкс >= 0 И ИндСкс < МойМассив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() Π’ΠΎΠ³Π΄Π°

Π”Π°Π½Π½Ρ‹Π΅ = МойМассив[ИндСкс];

Π˜Π½Π°Ρ‡Π΅

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ситуации отсутствия Π΄Π°Π½Π½Ρ‹Ρ…

Π”Π°Π½Π½Ρ‹Π΅ = НСопрСдСлСно;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

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

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° бСзопасности доступа

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

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

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ массиву Π² Ρ†ΠΈΠΊΠ»Π°Ρ…

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ прямоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ всСх элСмСнтов. Для этого Π² языкС 1Π‘ прСдусмотрСны ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ конструкции Ρ†ΠΈΠΊΠ»ΠΎΠ². Π‘Π°ΠΌΡ‹ΠΉ классичСский Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Ρ†ΠΈΠΊΠ» Для со счСтчиком, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ индСксом.

ΠŸΡ€ΠΈ использовании Ρ†ΠΈΠΊΠ»Π° Для ΠΎΡ‚ 0 Π΄ΠΎ Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ индСксу ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ счСтчика. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта, Π½ΠΎ ΠΈ Π΅Π³ΠΎ порядковый Π½ΠΎΠΌΠ΅Ρ€ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран ΠΈΠ»ΠΈ использования Π² расчСтах.

  • πŸ”„ Π¦ΠΈΠΊΠ» Для позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнты массива Π½Π° Π»Π΅Ρ‚Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π½ΠΈΠΌΠΈ ΠΏΠΎ ссылкС Ρ‡Π΅Ρ€Π΅Π· индСкс.
  • πŸš€ Π¦ΠΈΠΊΠ» Для КаТдого Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»Π΅Π½, Ссли индСкс Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, Π° трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.
  • ⚑ Π¦ΠΈΠΊΠ» Пока ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ, Π² основном для спСцифичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² с динамичСским ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Для КаТдого автоматичСски создаСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибки Β«Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹Β», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°.

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из МойМассив Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ. Если Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнты Π² процСссС ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… порядок, классичСский Ρ†ΠΈΠΊΠ» со счСтчиком ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ, хотя ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большСй остороТности.

Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ структурами

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² 1Π‘ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ, образуя ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ структуры. Π­Ρ‚ΠΎ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдставлСния Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈΠ»ΠΈ слоТных иСрархичСских списков. Доступ ΠΊ элСмСнту Π² Ρ‚Π°ΠΊΠΎΠΌ случаС осущСствляСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ индСксов для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ уровня влоТСнности.

Бинтаксис выглядит ΠΊΠ°ΠΊ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ элСмСнту ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня (строкС), Π·Π°Ρ‚Π΅ΠΌ ΠΊ элСмСнту Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня (столбцу). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ Π½Π° сущСствованиС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ ОписаниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°
1 ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ строки (Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ массив) Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Массив[0]
2 ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ячСйки Π²Π½ΡƒΡ‚Ρ€ΠΈ строки Π―Ρ‡Π΅ΠΉΠΊΠ° = Π‘Ρ‚Ρ€ΠΎΠΊΠ°[1]
ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠŸΡ€ΡΠΌΠΎΠΉ доступ ΠΊ ячСйкС Π—Π½Π°Ρ‡ = Массив[0][1]

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚Π°ΠΊΠΈΠΌΠΈ структурами критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ внСшнСго массива, Π½ΠΎ ΠΈ сущСствованиС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ. ΠŸΡƒΡΡ‚Π°Ρ строка Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ (пустой Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ массив) Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΅Ρ‘ ячСйкС.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ доступа

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

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. ИндСкс ΠΏΠ΅Ρ€Π²ΠΎΠΉ скобки Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ строку, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” столбСц. Π“Π»ΡƒΠ±ΠΈΠ½Π° влоТСнности тСорСтичСски Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 3-4 уровня ΠΈΠ·-Π·Π° слоТности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ΄Π°.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°

Бамая распространСнная ошибка β€” Off-by-one error (ошибка Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΠΏΠΈΡˆΡƒΡ‚ Ρ†ΠΈΠΊΠ» Π΄ΠΎ ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, забывая, Ρ‡Ρ‚ΠΎ послСдний индСкс Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ мСньшС. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΡ€Π°Ρ…Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° послСднСй ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Вторая частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Ρ€Π°Π±ΠΎΡ‚Π° с Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Если пСрСмСнная, которая Π΄ΠΎΠ»ΠΆΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ массив, ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно, любая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° обращСния ΠΊ Π½Π΅ΠΉ ΠΊΠ°ΠΊ ΠΊ массиву Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ВсСгда провСряйтС Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ доступа ΠΏΠΎ индСксу Π½Π° этапС компиляции, Ссли индСкс являСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Ошибка проявится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈ ΠΎΠΊΠ½ΠΎ Β«Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Β». Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти имя массива ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ содСрТимоС Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π°, раскрывая ΡƒΠ·Π»Ρ‹ для просмотра Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ индСксам. Π­Ρ‚ΠΎ быстрСС, Ρ‡Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ сообщСний Π² консоль.

πŸ’‘

ВсСгда провСряйтС, Ρ‡Ρ‚ΠΎ пСрСмСнная Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ являСтся Ρ‚ΠΈΠΏΠΎΠΌ Массив ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ индСксу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок выполнСния Π½Π° Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ЧастоС созданиС Π½ΠΎΠ²Ρ‹Ρ… массивов Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ссылками Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

Π§Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ массив[0], Ссли массив пуст?

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° обращСния ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ индСксу пустого массива Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ «ИндСкс находится Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† массива». Код выполнСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½, Ссли ошибка Π½Π΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы Π² 1Π‘?

НСт, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ для доступа ΠΊ элСмСнтам с ΠΊΠΎΠ½Ρ†Π° массива, ΠΊΠ°ΠΊ это сдСлано Π² Python. НСобходимо явно Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ индСкс: Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ значСния, хранящСгося Π² элСмСнтС массива?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π’ΠΈΠΏΠ—Π½Ρ‡(Массив[ИндСкс]). Она Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° «ОписаниСВипов», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ фактичСском Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Π°Π½Π½ΠΎΠΉ ячСйкС.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Массивом ΠΈ БпискомЗначСний?

Массив β€” это базовая структура Π΄Π°Π½Π½Ρ‹Ρ… для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². БписокЗначСний β€” это спСциализированный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с интСрфСйсами (поля Π²Ρ‹Π±ΠΎΡ€Π°, списки), ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сортировки ΠΈ поиска, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ….