Тоshkеnт ахborot техnоlоgiyаlari univеrsiтетi


FUNKSIYALARNING MASSIV KIRISH PARAMETRLARI



Yüklə 418 Kb.
səhifə34/42
tarix17.10.2023
ölçüsü418 Kb.
#156478
1   ...   30   31   32   33   34   35   36   37   ...   42
С РАХМ

FUNKSIYALARNING MASSIV KIRISH PARAMETRLARI
Funksiyalarga massivlarni kirish argument sifatida berish uchun parametr
e'lonida [] qavslar qo'yiladi. Masalan:
...
void sortArray(int [], int ); // funksiya e'loni
void sortArray(int n[], int hajm) { // funksiya aniqlanishi
...
}
...
Dasturda esa, funksiya chaqirilganda, massivning faqat ishmi beriladi halos,
[] qavslarning keragi yo'q.
int size = 10;
int array[size] = {0};
...
void sortArray(array, size); // funksiya chaqirig'i,
// faqat massiv ismi - array berildi
...
Funksiyaga massivlarni berganimizda, eng katta muammo bu qanday qilib
massivdagi elementlari sonini berishdir. Eng yaxshi usul bu massiv kattaligini
qo'shimcha kirish parametri orqali funksiyaga bildirishdir. Bundan tashqari,
massiv hajmini global konstanta orqali e'lon qilishimiz mumkin. Lekin bu
ma'lumotni ochib tashlaydi, global sohani ortiqcha narsalar bilan to'ldirib
tashlaydi. Undan tashqari massiv hajmini funksiyaning o'ziga yozib qoyishimiz
mumkin. Biroq bunda bizning funksiyamiz faqat bitta kattalikdagi massivlar
bilan ishlaydigan bo'lib qoladi. Yani dasturimiz dimamizmni yo'qotadi.
Klaslar yordamida tuzilgan massivlar o'z hajmini biladi. Agar bunday
ob'ektlarni qo'llasak, boshqa qo'shimcha parametrlarni qo'llashimizning keragi
yo'q.
Funksiyalarga massivlar ko'rsatkich ko'rinishida beriladi. Buni C++, biz
ko'rsatmagan bo'lsak ham, avtomatik ravishda bajaradi. Agar massivlar qiymat
bo'yicha chaqirilganda edi, har bir massiv elementining nushasi olinishi kerak
bo'lardi, bu esa dastur ishlash tezligiga salbiy ta'sir ko'rsatar edi.
Lekin massivning alohida elementi argument o'rnida funksiyaga berilganda,
ushbu element, aksi ko'rsatilmagan bo'lsa, qiymat bo'yicha beriladi. Masalan:
...
double m[3] = {3.0, 6.88, 4.7};
void foo(double d){
...
}
...
int main()
{
...
void foo(m[2]); // m massivining uchinchi elementining qiymati - 4.7 berildi
...
return (0);
}
Agar kiritilayatgan massiv funksiya ichida o'zgarishi ta'qiqlansa, biz
funksiya massiv parametri oldiga const sifatini qo'ysak bo'ladi:
foo(const char []);
Bunda funksiyaga kiradigan massiv funksiya tomonidan o'zgartirilmaydi.
Agar o'zgartirishga urinishlar bo'lsa, kompilyator hato beradi.
Massivlar va funksiyalarning birga ko'llanilishiga misol beraylik.
// Massiv argumentli funksiyalar

Yüklə 418 Kb.

Dostları ilə paylaş:
1   ...   30   31   32   33   34   35   36   37   ...   42




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin