Kako Vratiti Niz Iz Funkcije

Sadržaj:

Kako Vratiti Niz Iz Funkcije
Kako Vratiti Niz Iz Funkcije

Video: Kako Vratiti Niz Iz Funkcije

Video: Kako Vratiti Niz Iz Funkcije
Video: Безопасное удаление темного цвета - из темного в русый // Окрашивание волос в холодных оттенках 2024, Maj
Anonim

Imenovana kolekcija iste vrste podataka, koja se naziva niz, široko se koristi u različitim programskim jezicima. Uz pomoć niza mnogo je lakše raditi s podacima, osigurana je struktura programskog koda. Funkcije u jezicima također puno napreduju, omogućavajući vam izvršavanje visoko ciljanog zadatka bilo gdje u vašem kodu, bez ponovne primjene. U ovom je slučaju često potrebno koristiti podatke jednog niza i u funkciji i u drugim blokovima koda. Vraćanje niza iz funkcije može se implementirati na nekoliko načina.

Kako vratiti niz iz funkcije
Kako vratiti niz iz funkcije

Instrukcije

Korak 1

U programskom jeziku C ++ nije osiguran izravan povratak niza iz funkcije; ovaj se zadatak može riješiti prosljeđivanjem pokazivača na niz podataka. Da biste to učinili, prilikom deklaracije funkcije koja će se koristiti, zapišite je kao povratnu vrijednost pokazivač na tip podataka čiji niz planirate prenijeti.

Primjer programskog koda C ++ koji implementira vraćanje podataka niza pokazivačem:

razred Pomoć

{

privatno:

int m_data [4];

javno:

fDebit ()

{

m_data [0] = 42;

m_data [1] = 56;

}

int * returnArray () // deklaracija i opis funkcije

{

return m_data;

}

};

void main ()

{

int * m_dataA;

Pomoć * ohelp = nova Pomoć ();

m_dataA = ohelp-> returnArray (); // vraća niz klasa

}

Međutim, treba imati na umu da je takav povratak moguć samo unutar jedne klase. Ako trebate koristiti uobičajenu funkciju u programskom kodu, sličan prijenos podataka kroz pokazivač neće biti ispravan i može se izvršiti s greškom. To je povezano s opsegom varijabli. Kada kreirate niz u samoj funkciji, on neće biti vidljiv izvan funkcije.

Korak 2

Ako trebate prenijeti niz iz lokalne funkcije, trebali biste koristiti sljedeću opciju. Formirajte niz u glavnom programskom kodu. Deklarirajte funkciju s parametrima, od kojih će prva biti stalni pokazivač na tip podataka niza, druga je redoviti pokazivač iste vrste. Kada pozivate funkciju, proslijedite istu adresu stvorenog niza kao prvi i drugi parametar. Radite s podacima u funkciji s prvim primljenim pokazivačem i napišite sve promjene prema drugom pokazivaču. Tako ćete po završetku funkcije u nizu na drugom pokazivaču dobiti rezultate njenog rada.

Primjer deklaracije takve funkcije:

void my_funk_1 (const double * in, doble * out);

Korak 3

Koristite implementiranu klasu std:: auto_ptr koja rješava problem prosljeđivanja pokazivača iz funkcije bez grešaka s promjenjivim opsegom.

Uzorak programskog koda:

uključuju

uključuju

int Arr_f2 (int count) // opis funkcije

{

vrati novi int [count];

}

void main ()

{

std:: auto_ptr ptr (Arr_f2 (20)); // pozivamo funkciju i po njoj vraćamo niz

cout

Korak 4

U programskom jeziku FoxPro, povratak funkcije može se implementirati na sličan način pozivanjem na prethodno stvoreni niz.

Uzorak koda u FoxPro:

LOKALNI mas (2)

= func_2 (@ f3)

mas (15)

mas (20)

FUNKCIJA func_2 (mas)

VANJSKI NIZ mas

mas (1) = 1

mas (2) = 2

POVRATAK

ENDFUNC

Korak 5

Skriptni jezik AutoIt omogućava vam da vratite niz iz funkcije pomoću standardnih konstrukcija i operatora Return.

Uzorak koda na jeziku AutoIt:

#include

$ Rez = func_3 ()

$ aRezultat = StringSplit ($ Rez, '|')

Func func_3 ()

$ aRet = 15 & '|' & 40

Vrati $ aRet // vrati niz aRet iz funkcije

EndFunc

Preporučuje se: