166
{ a=4; b=5;
return a+::b;
}
Dastur natijasi
14
Dastur tarkibida a=20, b=10
global sifatida aniqlangan edi, lekin yig(a,b)
funksiyasini tarkibida a=4, b=5 lokal qiymatlar berildi. Dastur natijasi 14 ga teng,
chunki funksiya tarkibidagi a ni qiymati lokal sifatida qabul qilinib, b ni qiymati
esa global sifatida qoldi, chunki b o‗zgaruvchini
::b sifatida keltirildi.
Funksiya qiymatini qaytarish haqida
Barcha
dasturlarda int main() asosiy funksiyasidan foydalandik va bu
funksiyadan xohlagancha boshqa funksiyalarga murojaat tashkil qilish mumkin.
v
oid turida bo‗lmagan har qanday funksiya
return so‗zi bilan yakunlanadi.
Jumladan,
main() funksiyasi ham shu operator bilan yakunlanadi.
return
operatoridan foydalanishda quyidagilarga e‘tibor berish kerak:
a) faqat
void turli funksiyalar parametrsiz
return operatori bilan yakunlanishi
mumkin. Chunki qiymat chaqiriq byurug‗iga qaytarilmaydi.
Shuning uchun bu
turli funksiyalar
return operatorisiz ham yakunlanishi, ya‘ni
blok belgisi bilan
yakunlanishi mumkin;
b)
void turidan boshqa turli barcha funksiyalar
return operatori bilan
yakunlanadi, ya‘ni
return parametr ko‗rinishida bo‗lishi kerak. Agar bu
operatordan parametrsiz foydalanilsa, kompilyator qaytariladigan qiymat yo‗q deb
xabar beradi;
c)
void turidan boshqa turli funksiya
returnsiz tugasa ham, blok belgisi
(}) ni
uchratgach, kompilyator funksiya tanasini bajarish tugaganligini tushunadi va
xatolik haqida xabar bermaydi. Ammo funksiya
tanasidagi hisob natijalari
qaytarilmaganligi tufayli, chaqiriq byurug‗i qandaydir o‗zgaruvchiga qiymat
sifatida berilgan bo‗lsa, o‗sha o‗zgaruvchi qiymat sifatida tasodifiy sonni oladi va
tabiiyki, keyingi buyruqlarda mantiqiy xatoliklar sodir bo‗ladi;
d)
return so‗zidan keyin parametr sifatida biror o‗zgaruvchi nomidan,
masalan,
return p kabi foydalanilgan bo‗lib, p e‘lon qilingan,
ammo qiymati
aniqlanmagan bo‗lsa ham qiymat sifatida tasodifiy son qaytariladi;
e) chaqiriq byurug‗idan foydalanilgandan keyin qandaydir qiymat qaytariladi.
Lekin o‗sha qiymatni zarurat bo‗lmasa biror o‗zgaruvchiga berib, chaqiriq
167
byurug‗idan keyingi buyruqlarda foydalanish shart emas.
Bunday holda funksiya
tanasidagi amallar natijasi o‗z-o‗zidan yo‗qolib ketadi;
f) funksiya tanasidagi hisob natijalari qanday bo‗lishidan qat‘iy nazar
return
da ko‗rsatilgan son yoki parametrning qiymati qaytariladi. Masalan, funksiya.