Reja: Adres (manzil) operatori



Yüklə 51,35 Kb.
səhifə6/8
tarix24.05.2023
ölçüsü51,35 Kb.
#121326
1   2   3   4   5   6   7   8
8 mavzu (1)

1 2 3
1 6 8
Bu misolda birinchi parametr i qiymat bilan uzatiladi (“int i"). Uning qiymati funksiya ichida o‘zgaradi, lekin tashqaridagi i o‘zga-ruvchisining qiymati o‘zgarmaydi. Ikkinchi parametrni ko‘rsatkich orqali adresi bilan uzatilishi talab qilinadi (“int *j”), adresni uzatish uchun ‘&’- adresni olish amali ishlatilgan (“&j”). Funksiya tanasida argument adresidan qiymat olish uchun ‘*’- qiymat olish amali qo‘llanilgan. Uchinchi parametrda murojaat orqali (“&k”) argumentning adresi uzatish ko‘zda tutilgan. Bu holda funksiya chaqirilishida mos argument o‘rnida o‘zgaruvchi nomi turadi, funksiya ichida esa qiymat olish amalini ishlatishning hojati yo‘q. Funksiya ishlash natijasidagi qiymatlarni argumentlar ro‘yxati orqali olish qulay va tushunarli usul hisoblanadi.
Agar funksiya ichida adres bilan uzatiladigan parametr qiymati o‘zgarmasdan qolishi zarur bo‘lsa, bu parametr const modifikator bilan yozilishi kerak:
fun(int n,const char*str);
Agarda funksiyani chaqirishda argumentlar faqat nomlari bilan berilgan bo‘lsa, kelishuv bo‘yicha massivlar va funksiyalar adresi bilan, qolgan turdagi parametrlar qiymatlari bilan uzatilgan deb hisoblanadi.
Misol tariqasida diskriminantni hisoblash usuli yordamida ax2+bx+c=0 ko‘rinishidagi kvadrat tenglama ildizlarini funksiya parametrlari vositasida olish masalasini ko‘raylik.


#include
#include
int Kvadrat_Ildiz(float a,float b,float c,
float & x1, float & x2)
{
float D;
D=b*b-4*a*c;
if(D<0) return 0;
if(D==0)
{
x1=x2=-b/(2*a);
return 1;
}
else
{
x1=(-b+sqrt(D))/(2*a);
x2=(-b-sqrt(D))/(2*a);
return 2;
}
}
int main()
{

Yüklə 51,35 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8




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