Массив нь програмыг ажиллуулах явцад хамгийн их ашиглагддаг өгөгдөл хадгалах хэлбэр юм. Эдгээр нь ижил төрлийн элементүүдийг захиалсан дарааллаар зохион байгуулж, индексээр хурдан хандах боломжийг танд олгоно. Ихэнх тохиолдолд C ++ гэх мэт санах ойд шууд хандах боломжийг олгодог хүчирхэг, уян хатан програмчлалын хэл дээр програм боловсруулахдаа массивын хэмжээг тодорхойлох шаардлагатай байдаг.
Шаардлагатай
C ++ хөрвүүлэгч
Зааварчилгаа
1-р алхам
Массивын хэмжээг эмхэтгэх үед sizeof операторыг ашиглан тооцоолж тодорхойлно. Энэ оператор нь түүнд өгөгдсөн аргументын эзэлсэн санах ойн хэмжээг (байтаар) буцаана. Аргумент нь хувьсагч эсвэл төрөл танигч байж болно. Хэмжээст оператор нь програмыг гүйцэтгэх үе шатанд объектын эзэлсэн санах ойн хязгаарлагдмал хэмжээг буцаана (жишээлбэл, бүтцийн талбайн уялдуулах тохиргоог харгалзан үзэх) боловч түүний тооцоог хөрвүүлэх үе шатанд гүйцэтгэдэг.
Алхам 2
Sizeof операторыг ашиглан массивын хэмжээг тодорхойлохын тулд түүний хэмжээг бүхэлд нь нэг элементийн хэмжээгээр хуваана. Жишээлбэл, танд массивын дараахь тодорхойлолт байгаа бол: int aTemp = {10, 20, 0xFFFF, -1, 16}, түүний хэмжээг дараахь байдлаар тооцоолж болно: int nSize = sizeof (aTemp) / sizeof (aTemp) [0]);
Алхам 3
Энэ аргыг илүү тохиромжтой ашиглахын тулд макроыг тодорхойлох нь зүйтэй юм: #define countof (a) (sizeof (a) / sizeof (a [0]))): хэмжээ операторын утгыг хөрвүүлэх үед тооцдог болохыг анхаарна уу. цаг хугацаа, тооцооллыг хийж буй цэг дээр массивын эзэлхүүн ба түүний элементүүдийн талаархи мэдээллийг шууд бэлэн байлгах ёстой. Өөрөөр хэлбэл үл мэдэгдэх хэмжээтэй массивын параметрүүдийг гадны мэдүүлгээр нь тодорхойлох боломжгүй юм.
Алхам 4
Програмыг гүйцэтгэх явцад массивын хэмжээг түүний дуусгавар болох тэмдэгийг ашиглан тодорхойлно. Тодорхойгүй урт массив хэлбэрээр өгөгдлийг хадгалах, дамжуулах боломжийг олгодог хандлагын нэг бол өгөгдлийн дараалал дууссаныг харуулсан тэмдгийн тусгай утгыг хуваарилах явдал юм. Жишээлбэл, тэмдэгтийн массив болох нэг байтын С загварын мөрүүд 0 гэсэн утгатай төгсөх ёстой, савласан хувьсах урттай C мөрийн массивууд тэг төгсгөлтэй, заагч массивууд тэгээр дуусах ёстой.
Алхам 5
Ийм байдлаар дүрслэгдсэн массивын хэмжээг тодорхойлохын тулд төгсгөлийн элементийг олтол элемент бүрээр нь сканнердах хэрэгтэй. Скан хийх явцад тэгээс эхлүүлсэн тоолуурыг нэмэгдүүлнэ. Эсвэл заагчийн утгыг массивын элемент болгон нэмэгдүүлээд скан хийсний дараа одоогийн ба эхний элементүүдийн заагчуудын зөрүүг тооцоол.
Алхам 6
Хүрээ эсвэл номын сангийн объектоор дүрслэгдсэн динамик массивын хэмжээг түүний аргыг дуудаж авна. Ийм массивын ажиллагааг багтаасан аливаа анги нь одоогийн тооны элементийг авах аргуудтай байдаг. Жишээлбэл, C ++ стандарт номын сангийн std:: vector загвар анги нь хэмжээтэй, Qt framework-ийн QVector анги нь тоолох арга, MFC-ийн аналог CArray анги нь GetCount аргатай байдаг.