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

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

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

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности структуры Π΄Π°Π½Π½Ρ‹Ρ…

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, массив прСдставляСт собой ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ элСмСнтов, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ осущСствляСтся ΠΏΠΎ индСксу. Π’ контСкстС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 эта структура Π΄Π°Π½Π½Ρ‹Ρ… являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ. Она ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²: числа, строки, Π΄Π°Ρ‚Ρ‹, ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы. Вакая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Ρ‘ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ инструмСнтом Π² арсСналС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

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

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

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

Бинтаксис объявлСния ΠΈ инициализация ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

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

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ объявлСния ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ структуры. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Ρ‘ с фиксированным Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ, ΡƒΠΊΠ°Π·Π°Π² количСство ячССк Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π΅Π· Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Π½Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Ρ‘ динамичСски. Π’Ρ‹Π±ΠΎΡ€ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

// ОбъявлСниС массива фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (5 элСмСнтов)

ΠŸΠ΅Ρ€Π΅ΠΌ МойМассив[5];

// ОбъявлСниС динамичСского массива

ΠŸΠ΅Ρ€Π΅ΠΌ Π”ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠœΠ°ΡΡΠΈΠ²;

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

πŸ“Š Какой способ объявлСния Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Ѐиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€
ДинамичСскоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅
ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ массивы
πŸ’‘

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

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы: Ρ€Π°Π±ΠΎΡ‚Π° с Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

НаиболСС распространСнным сцСнариСм использования являСтся Ρ€Π°Π±ΠΎΡ‚Π° с Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌΠΈ списками Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для хранСния ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ΠΉ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², списков сотрудников ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ индСкс, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠΉ структуры часто происходит Π² Ρ†ΠΈΠΊΠ»Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ iterating ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ чисСл ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ запроса, помСщая ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π½ΠΎΠ²ΡƒΡŽ ячСйку. ΠŸΡ€ΠΈ этом Π²Π°ΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ индСкс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹ΠΉΡ‚ΠΈ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области памяти, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Ρ‹Π» зафиксирован ΠΏΡ€ΠΈ объявлСнии.

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

  • πŸ“¦ Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ списка Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
  • πŸ”’ НакоплСниС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² вычислСний Π² Ρ†ΠΈΠΊΠ»Π΅.
  • πŸ“‹ Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² внСшниС систСмы ΠΈΠ»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. Если Π²Ρ‹ объявили ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π΅Π· Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного указания индСкса ΠΈΠ»ΠΈ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ° Массив ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ стандартных подсистСм, Π½ΠΎ Π² чистом языкС это дСлаСтся Ρ‡Π΅Ρ€Π΅Π· присваиваниС ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡƒ индСксу.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ структуры ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² памяти

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

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

Π’ΠΈΠΏ структуры Бинтаксис объявлСния ΠŸΡ€ΠΈΠΌΠ΅Ρ€ обращСния НазначСниС
ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Массив[10] Массив[0] Бписки, ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ
Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Массив[5, 5] Массив[1, 2] ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
Π’Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Массив[3, 3, 3] Массив[0, 1, 2] ΠšΡƒΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, слои
Ассоциативный Массив["ΠšΠ»ΡŽΡ‡"] Массив["Иванов"] Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ, справочники

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

Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив массивов Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ массив Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, присвоив элСмСнту ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Массив1[0] = Новый Массив;. Π­Ρ‚ΠΎ создаСт Π³ΠΈΠ±ΠΊΡƒΡŽ структуру, Π³Π΄Π΅ Π΄Π»ΠΈΠ½Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… массивов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

АссоциативныС массивы ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ индСксы

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

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

Настройки = Новый Массив;

Настройки["Π¦Π²Π΅Ρ‚Π€ΠΎΠ½Π°"] = "Π‘ΠΈΠ½ΠΈΠΉ";

Настройки["Π Π°Π·ΠΌΠ΅Ρ€Π¨Ρ€ΠΈΡ„Ρ‚Π°"] = 12;

Настройки[Π”Π°Ρ‚Π°Π’Ρ€Π΅ΠΌΠ΅Π½ΠΈ()] = "ПослСдний Π²Ρ…ΠΎΠ΄";

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ экзСмпляру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Копии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒΡΡ систСмой ΠΊΠ°ΠΊ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ Π² зависимости ΠΎΡ‚ контСкста сравнСния.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов

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

Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ индСкс элСмСнта Π² процСссС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классичСский Ρ†ΠΈΠΊΠ» Для ... По .... Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ порядком ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΈ позволяСт ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ структуру массива прямо Π² Ρ…ΠΎΠ΄Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, хотя Π΄Π΅Π»Π°Ρ‚ΡŒ это Π½ΡƒΠΆΠ½ΠΎ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡΠ±ΠΈΡ‚ΡŒ счСтчик.

  • πŸ”„ Π¦ΠΈΠΊΠ» "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ": ΠΈΠ΄Π΅Π°Π»Π΅Π½ для чтСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ выполнСния дСйствий Π½Π°Π΄ значСниями.
  • πŸ”’ Π¦ΠΈΠΊΠ» "Для": Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΆΠ΅Π½ порядковый Π½ΠΎΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ трСбуСтся ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΎΠ±Ρ…ΠΎΠ΄.
  • πŸ” Поиск элСмСнта: рСализуСтся Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ с условиСм, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ встроСнного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Find Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ языкС Π½Π΅Ρ‚.

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

β˜‘οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивом

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

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

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

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

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ слоТных структур рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ панСль ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ содСрТимоС Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации. Визуализация Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстро Π½Π°ΠΉΡ‚ΠΈ расхоТдСния Π² индСксах ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ°Ρ… Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ массив Π² 1Π‘ являСтся ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти, поэтому ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ссылку, Π° Π½Π΅ копию Π΄Π°Π½Π½Ρ‹Ρ….

πŸ’‘

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° массива Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ ссылкС позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ исходныС Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π», создавайтС ΡΠ²Π½ΡƒΡŽ копию ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ с синтаксис-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² ΠΊΠΎΠ΄Π°.

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

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива послС Π΅Π³ΠΎ объявлСния?

Π”Π°, Ссли массив Π±Ρ‹Π» объявлСн Π±Π΅Π· указания Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² (динамичСский), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π½ΠΎΠ²Ρ‹ΠΌΠΈ индСксами. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Ρ‹Π» зафиксирован ΠΏΡ€ΠΈ объявлСнии, Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Массивом ΠΈ Π’Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

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

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сущСствуСт Π»ΠΈ элСмСнт с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ индСксом?

ВстроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π΅Ρ‚. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ... Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для обращСния ΠΊ элСмСнту. Если Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, Π·Π½Π°Ρ‡ΠΈΡ‚, индСкс Π½Π΅ сущСствуСт. Π›ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡ΠΈ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ассоциативный Ρ€Π΅ΠΆΠΈΠΌ.

МоТно Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ массивС числа ΠΈ строки ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ?

Π”Π°, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Випизация провСряСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ массив ΠΎΡ‚ всСх элСмСнтов?

Π‘Π°ΠΌΡ‹ΠΉ быстрый способ β€” ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр: МойМассив = Новый Массив. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ освободит ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π·Π°Π½ΡΡ‚ΡƒΡŽ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.