Kuidas Massiivi Tagastada

Sisukord:

Kuidas Massiivi Tagastada
Kuidas Massiivi Tagastada

Video: Kuidas Massiivi Tagastada

Video: Kuidas Massiivi Tagastada
Video: Excel: Диагональное разделение ячейки (два заголовка в одной ячейке) 2024, November
Anonim

Massiivid on struktureeritud andmete salvestamise üks lihtsamaid vorme. Kuna ühemõõtmeliste massiivide salvestamiseks eraldatakse jagamatud mälupiirkonnad ja enamikul programmeerimiskeeltel on deklaratsiooniks süntaktilised konstruktsioonid, kasutatakse neid intensiivselt puhvritena suure hulga teabe ülekandmiseks erinevatesse (sh raamatukogu) funktsioonidesse. Omakorda peavad funktsioonid mõnikord massiivi tagastama.

Kuidas massiivi tagastada
Kuidas massiivi tagastada

Vajalik

  • - tekstiredaktor;
  • - C või C ++ kompilaator ja linker.

Juhised

Samm 1

Funktsiooni või meetodi andmete tagastamiseks asetage need helistaja poolt eraldatud ja viitena edastatud kindla pikkusega massiivi. Määrake sobiv andmetüüp, näiteks: typedef int t_array10 [10]; Kasutage seda vajaliku funktsiooni või meetodi deklaratsioonis ja rakenduses: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Helistage sobivalt: int aNumbers [10]; ReturnArray (aNumbers); Selle meetodi puuduseks on see, et massiivi pikkus on fikseeritud.

2. samm

Tagastage massiivi andmed, asetades need helistajale eraldatud väljundpuhvrisse, mille kursor edastab. Funktsiooni või meetodi prototüüp võib sisaldada parameetrit, mis on deklareeritud nii massiivi tähistuses ilma suuruse spetsifikatsioonita: void ReturnArray (int anArray , int nSize) või osuti: void ReturnArray (int * pnArray, int nSize); Mõlemas juhtudel saab identifikaatori parameetrit kasutada massiivi tähistuses: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Seda meetodit massiivide edastamiseks funktsioonidele ja massiivi andmete tagastamist kasutatakse valdavas enamuses juhtudest C-programmide väljatöötamisel. Pange tähele, et funktsioonidel ja meetoditel, mis sel viisil andmeid aktsepteerivad ja tagastavad, peab reeglina olema täiendav parameeter, mille kaudu puhvri tegelik suurus edastatakse.

3. samm

Tagastab funktsioonis või meetodis loodud massiivi. Formaalselt ei tohiks sellisel juhul tagastada mitte massiiv, vaid selle esimese elemendi osuti: int * ReturnArray () {int * pnArray = new int [10]; // töötage pnArray-ga return pnArray;} // saate viidata loodud massiivile int * pnNumbers = ReturnArray (); // kasutage delete pnNumbers; // kustuta Sellel meetodil on mõned piirangud. Niisiis, massiiv peab asuma hunnikus. Lisaks tuleb see kustutada loomisele vastava meetodiga (kustutada juhul, kui kasutatakse uut, mallocile tasuta jne).

4. samm

C ++ programmide väljatöötamisel saate massiivid mugavalt tagastada konteinerklassidega. Näide massiivi loomise ja tagastamise kohta, mis on int jaoks määratud C ++ standardse mallide teegi vektorimalli klassi objekt, võib välja näha järgmine: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std: vector oArray = ReturnArray (); Pange tähele, et enamik populaarseid raamistikke pakuvad võimsaid klasse või massiiviklassi malle. Nad rakendavad sageli kaudse andmete jagamise kontseptsiooni koos viidete loendamise ja kirjutamise kohta kirjutamise teel. Seetõttu tagastatakse funktsioonidest selliste massiivide väärtuse järgi tagastamine väga tõhusalt ja see on seotud arvutusressursside minimaalse tarbimisega.

Soovitan: