253
qaytadi. Undan tashqari yuqorida ko`rganimizdek, funksiyaga berilgan
o`zgaruvchilarning faqat nusxalari bilan ish ko`rilarkan. Ularning qiymatini normal
sharoitda funksiya ichida o`zgartirish mumkin emas. Lekin bu muammolar
ko`rsatkichlar yordamida osonlikcha hal etiladi. Funksiya chaqiriqlarida avtomatik
ma`lumot tipining konversiyasi bajariladi. Bu amal kompilyator tomonidan
bajarilganligi sababli funksiyalarni chaqirganda ehtiyot bo`lish kerak. Javob xato
ham bo`lishi mumkin. Shu sababli kirish parametrlar tipi sifatida katta hajmli
tiplarni qo`llash maqsadga muvofiq bo`ladi. Masalan, double tipi har qanday sonli
tipdagi qiymatni o`z ichiga olishi mumkin. Lekin bunday qiladigan bo`lsak, biz
tezlikdan yutqazishimiz turgan gap. Avtomatik konversiyaga misol keltiraylik.
28-listing
.
Output:
int division(int m, int k) {
return (m / k);
}
dasturda chaqirsak:...
float f = 14.7;
double d = 3.6;
int j = division(f,d); //f 14 bo`lib kiradi, d 3 bo`lib kiradi
// 14/3 - butun sonli bo`lish esa 4 javobini beradi
cout << j;
4
Demak, kompilyator f va d o`zgaruvchilarining kasr qismlarini tashlab
yuborar ekan. Qiymatlarni pastroq sig`imli tiplarga o`zgartirish xatoga olib keladi.