Bir xil turdagi ma'lumotlarning massiv deb nomlangan to'plami turli dasturlash tillarida keng qo'llaniladi. Massiv yordamida ma'lumotlar bilan ishlash ancha osonlashadi, dastur kodining tuzilishi ta'minlanadi. Tillardagi funktsiyalar ham uzoq yo'lni bosib o'tib, juda maqsadli vazifani o'zingizning kodingizning istalgan joyida qayta bajarmasdan bajarishga imkon beradi. Bunday holda, ko'pincha bitta massivning ma'lumotlarini funktsiyalarda ham, boshqa kod bloklarida ham ishlatish kerak bo'ladi. Massivni funktsiyadan qaytarish bir necha usulda amalga oshirilishi mumkin.
Ko'rsatmalar
1-qadam
C ++ dasturlash tilida massivning funktsiyadan to'g'ridan-to'g'ri qaytishi ta'minlanmagan; bu vazifani ko'rsatkichlar qatoriga o'tish orqali hal qilish mumkin. Buning uchun foydalaniladigan funktsiyani e'lon qilganda, uni uzatishni rejalashtirgan ma'lumotlar turiga ko'rsatgich sifatida qaytarish qiymati sifatida yozing.
Massiv ma'lumotlarini ko'rsatgich orqali qaytarishni amalga oshiradigan C ++ dastur kodining misoli:
sinf Yordam
{
xususiy:
int m_data [4];
jamoat:
fDebit ()
{
m_data [0] = 42;
m_data [1] = 56;
}
int * returnArray () // funktsiya deklaratsiyasi va tavsifi
{
m_data qaytish;
}
};
void main ()
{
int * m_dataA;
SHelp * ohelp = yangi SHelp ();
m_dataA = ohelp-> returnArray (); // sinf qatorini qaytarish
}
Ammo shuni yodda tutish kerakki, bunday qaytish faqat bitta sinf ichida mumkin. Agar dastur kodida oddiy funktsiyadan foydalanish zarur bo'lsa, ma'lumotni ko'rsatgich orqali shunga o'xshash uzatish noto'g'ri bo'ladi va xato bilan bajarilishi mumkin. Bu o'zgaruvchilar ko'lami bilan bog'liq. Funktsiyaning o'zida massiv yaratganda, u funktsiyadan tashqarida ko'rinmaydi.
2-qadam
Agar siz massivni mahalliy funktsiyadan o'tkazishingiz kerak bo'lsa, quyidagi parametrdan foydalanishingiz kerak. Dasturning asosiy kodida massiv hosil qiling. Parametrlar bilan funktsiyani e'lon qiling, ularning birinchisi massivning ma'lumotlar turiga doimiy ko'rsatgich bo'ladi, ikkinchisi bir xil turdagi muntazam ko'rsatkich. Funktsiyani chaqirganda, birinchi va ikkinchi parametrlar kabi yaratilgan massivning bir xil manzilini yuboring. Birinchi qabul qilingan ko'rsatkich bilan funktsiyadagi ma'lumotlar bilan ishlang va barcha o'zgarishlarni ikkinchi ko'rsatkichga muvofiq yozing. Shunday qilib, funktsiya tugagandan so'ng, siz uning natijalarini ikkinchi ko'rsatkichda massivda olasiz.
Bunday funktsiyani e'lon qilishning misoli:
void my_funk_1 (const double * in, doble * out);
3-qadam
Amalga oshirilgan std:: auto_ptr sinfidan foydalaning, bu funktsiyani ko'rsatgichni o'zgarmaydigan doirasi bo'lgan xatosiz o'tkazish muammosini hal qiladi.
Dastur kodining namunasi:
o'z ichiga oladi
o'z ichiga oladi
int Arr_f2 (int count) // funktsiyalar tavsifi
{
return new int [count];
}
void main ()
{
std:: auto_ptr ptr (Arr_f2 (20)); // funktsiyani chaqiring va uning yordamida qatorni qaytaring
cout
4-qadam
FoxPro dasturlash tilida funktsiyani qaytarish shunga o'xshash tarzda ilgari yaratilgan massivga murojaat qilish orqali amalga oshirilishi mumkin.
FoxPro-dagi namunaviy kod:
Mahalliy mas (2)
= func_2 (@ f3)
mas (15)
mas (20)
FUNCTION func_2 (mas)
Tashqi massiv mas
mas (1) = 1
mas (2) = 2
QAYTISH
ENDFUNC
5-qadam
AutoIt skript tili sizga standart konstruktsiyalar va Return operatori yordamida massivni funktsiyadan qaytarish imkonini beradi.
AutoIt tilidagi namunaviy kod:
# shu jumladan
$ Rez = func_3 ()
$ aRezultat = StringSplit ($ Rez, '|')
Funksiya_3 ()
$ aRet = 15 & '|' & 40
Return $ aRet // return array aRet from function
EndFunc