Заагч ба массив хоёрын ялгаа

Заагч ба массив хоёрын ялгаа
Заагч ба массив хоёрын ялгаа

Видео: Заагч ба массив хоёрын ялгаа

Видео: Заагч ба массив хоёрын ялгаа
Видео: 2021 06 16 Харшил ба түүний эмчилгээ 2024, Арваннэгдүгээр
Anonim

Заагч болон Массив

Заагч нь санах ойн байршлын лавлагаа агуулсан өгөгдлийн төрөл юм (жишээ нь заагч хувьсагч нь зарим өгөгдөл хадгалагдсан санах ойн байршлын хаягийг хадгалдаг). Массив нь элементүүдийн цуглуулгыг хадгалахад хамгийн түгээмэл хэрэглэгддэг өгөгдлийн бүтэц юм. Ихэнх програмчлалын хэлүүд массивыг хялбархан зарлах, массив дахь элементүүдэд хандах аргуудыг өгдөг.

Заагч гэж юу вэ?

Заагч нь зарим өгөгдөл хадгалагдаж буй санах ойн байршлын хаягийг хадгалдаг өгөгдлийн төрөл юм. Өөрөөр хэлбэл, заагч нь санах ойн байршлын лавлагааг агуулна. Заагчаар иш татсан санах ойн байршилд хадгалагдсан өгөгдөлд хандахыг ялгах гэж нэрлэдэг. Мод/мөр дамжих, хүснэгт хайх гэх мэт давтагдах үйлдлүүдийг гүйцэтгэх үед заагч ашиглах нь гүйцэтгэлийг сайжруулна. Учир нь заагчийг заагчаас салгах, хуулах нь заагчаар заасан өгөгдлийг хуулж авахаас хамаагүй хямд юм. Нул заагч нь юу ч заагаагүй заагч юм. Java хэл дээр null заагч руу хандах нь NullPointerException гэж нэрлэгддэг онцгой тохиолдол үүсгэдэг.

Масив гэж юу вэ?

1-р зурагт үзүүлсэн нь массивын утгыг зарлах, онооход ихэвчлэн хэрэглэгддэг кодын хэсэг юм. Зураг 2 нь массив санах ойд хэрхэн харагдахыг дүрсэлсэн.

int утгууд[5];

утга[0]=100;

утга[1]=101;

утга[2]=102;

утгууд[3]=103;

утга[4]=104;

Зураг 1: Массивд утгыг зарлах, оноох код

100 101 102 103 104
Индекс: 0 1 2 3 4

Зураг 2: Санах ойд хадгалагдсан массив

Дээрх код нь 5 бүхэл тоо хадгалах боломжтой массивыг тодорхойлдог бөгөөд тэдгээрт 0-ээс 4 хүртэлх индексийг ашиглан ханддаг. Массивын нэг чухал шинж чанар нь массив бүхэлдээ нэг санах ойн блок хэлбэрээр хуваарилагдаж, элемент бүр өөрийн гэсэн утгыг авдаг. массив дахь өөрийн орон зай. Массив тодорхойлогдсоны дараа түүний хэмжээ тогтмол байна. Тиймээс хэрэв та эмхэтгэх үед массивын хэмжээг сайн мэдэхгүй байгаа бол аюулгүй талд байх хангалттай том массивыг тодорхойлох хэрэгтэй болно. Гэхдээ ихэнхдээ бид хуваарилснаасаа цөөн тооны элемент ашиглах болно. Тиймээс ихээхэн хэмжээний санах ой үнэхээр дэмий зарцуулагддаг. Нөгөө талаас хэрэв "хангалттай том массив" хангалттай том биш бол програм гацах болно.

Заагч болон массивын ялгаа нь юу вэ?

Заагч нь зарим өгөгдөл хадгалагдаж буй санах ойн байршлын хаягийг хадгалдаг өгөгдлийн төрөл бөгөөд массив нь элементүүдийн цуглуулгыг хадгалахад хамгийн түгээмэл хэрэглэгддэг өгөгдлийн бүтэц юм. Си програмчлалын хэлэнд массивын индексжүүлэлтийг заагч арифметик ашиглан хийдэг (жишээ нь x массивын i-р элемент нь (x+i)-тэй тэнцүү байх болно). Иймд Си хэлэнд дараалсан санах ойн байршлуудын багцыг заадаг заагчийн багцыг массив гэж үзэж болно. Цаашилбал, sizeof оператор нь заагч болон массив дээр хэрхэн ажиллахад ялгаатай байдаг. Массив дээр хэрэглэхэд sizeof оператор нь массивын хэмжээг бүхэлд нь буцаана, харин заагч дээр хэрэглэхэд зөвхөн заагчийн хэмжээг буцаана.

Зөвлөмж болгож буй: