Kaip Nustatyti Masyvo Dydį

Turinys:

Kaip Nustatyti Masyvo Dydį
Kaip Nustatyti Masyvo Dydį

Video: Kaip Nustatyti Masyvo Dydį

Video: Kaip Nustatyti Masyvo Dydį
Video: How to determine or get array length (size) in C/C+ 2024, Lapkritis
Anonim

Masyvai yra viena iš dažniausiai naudojamų duomenų saugojimo formų vykdant programą. Jie leidžia organizuoti to paties tipo elementus eilės tvarka ir greitai prieiti prie jų pagal rodyklę. Labai dažnai, kurdami programas galingomis ir lanksčiomis programavimo kalbomis, leidžiančiomis tiesiogiai pasiekti atmintį, pvz., C ++, turite nustatyti masyvo dydį.

Kaip nustatyti masyvo dydį
Kaip nustatyti masyvo dydį

Būtinas

C ++ kompiliatorius

Nurodymai

1 žingsnis

Nustatykite masyvo dydį kompiliavimo metu, apskaičiuodami jį naudodami operatorių sizeof. Šis operatorius pateikia atminties kiekį (baitais), kurį užima jam perduotas argumentas. Argumentas gali būti kintamasis arba tipo identifikatorius. Operatorius „sizeof“pateikia baigtinį atminties kiekį, kurį užima objektas programos vykdymo etape (atsižvelgiant, pavyzdžiui, į struktūros laukų sulyginimo nustatymus), tačiau jo skaičiavimas atliekamas kompiliavimo etape.

2 žingsnis

Norėdami nustatyti masyvo dydį naudodami operatorių sizeof, padalykite visą jo dydį iš vieno elemento dydžio. Pavyzdžiui, jei turite tokį masyvo apibrėžimą: int aTemp = {10, 20, 0xFFFF, -1, 16}, tada jo dydį galima apskaičiuoti taip: int nSize = sizeof (aTemp) / sizeof (aTemp) [0]);

3 žingsnis

Kad būtų patogiau naudoti šį metodą, tikslinga apibrėžti makrokomandą: #define countof (a) (sizeof (a) / sizeof (a [0])) Atkreipkite dėmesį, kad kadangi operatoriaus sizeof vertė apskaičiuojama kompiliuojant Tuo metu, kai atliekamas skaičiavimas, turi būti aiškiai pateikta informacija apie masyvo tūrį ir jo elementus. Kitaip tariant, pagal jo išorinę deklaraciją neįmanoma nustatyti nežinomo dydžio masyvo parametrų.

4 žingsnis

Nustatykite masyvo dydį vykdant programą, naudodami žinomą jos nutraukimo ženklą. Vienas iš būdų, leidžiantis saugoti ir perduoti duomenis neapibrėžto ilgio masyvų pavidalu, yra skirti specialią reikšmę ženklui, nurodančiam duomenų sekos užbaigimą. Pvz., Vieno baito C stiliaus eilutės, kurios yra simbolių masyvai, turi baigtis 0 reikšme, supakuotos kintamo ilgio C eilutės masyvai yra nulinio ir žymeklio masyvai turi būti nutraukti.

5 žingsnis

Norėdami nustatyti tokiu būdu pateikto masyvo dydį, nuskaitykite jį elementą po elemento, kol rasite baigiamąjį elementą. Nuskaitymo metu padidinkite nulio inicializuotą skaitiklį. Arba padidinkite žymeklio reikšmę iki masyvo elemento ir nuskaitydami apskaičiuokite skirtumą tarp rodyklių į dabartinius ir pirmuosius elementus.

6 žingsnis

Gaukite dinaminio masyvo, kurį vaizduoja karkasas ar bibliotekos objektas, dydį, iškviesdami jo metodą. Bet kurios klasės, kurios apima tokių masyvų funkcionalumą, turi metodus, kaip gauti dabartinį elementų skaičių. Pvz., C ++ standartinės bibliotekos „std:: vector template“klasėje yra dydžio metodas, „Qt framework“QVector klasėje yra skaičiavimo metodas, o MFC analogiškoje „CArray“klasėje - „GetCount“metodas.

Rekomenduojamas: