Vi fəsil. C++ dilində proqramlaşdırma


Tiplərin çevrilməsi əməli



Yüklə 1,02 Mb.
səhifə11/74
tarix04.01.2023
ölçüsü1,02 Mb.
#121980
1   ...   7   8   9   10   11   12   13   14   ...   74
Alqoritmik dillər(C kitab) (10)

6.8. Tiplərin çevrilməsi əməli
Tiplərin çevirmələrinin iki növü vardır:
-qeyri aşikar çevirmələr;
-aşikar çevirmələr.

Qeyri-aşikar çevirmə zamanı ifadədə iştirak edən operandların tipləri proqramçının müdaxiləsi olmadan uyğun bir tipə çevrilir. Kiçik tip böyük tipə çevrilir. Məsələ, a- dəyişəni həqiqi tip, bc-dəyişənləri tam tipə aiddirsə, onda


a*b+c*a-ifadəsinin qiyməti həqiqi tipə aid olacaq. Bu ifadədə iştirak edən dəyişənlərin tipində və ifadənin qiymətində qeyri-aşikar tip çevirməsi baş verir.

Tam tiplər üstünlük dərəcəsinin artma sırasına görə aşağıdaki kimidir:


char short int long

Həqiqi tiplər üstünlük dərəcəsinin artma sırasına görə aşağıdaki kimidir.



float double long double

Qeyd edək ki, tam tipləri həqiqi tipə çevirən zaman dəqiqilik itə bilər. Məsələ, 1-ədədinin əvəzinə 0.999 alına bilər. Aşağıda ifadənin qiymətinin hesablanması zamanı əməllərin yerinə yetirilmə ardıcıllığı və tiplərin çevrilməsi nümayiş etdirilmişdir.

Tutaq ki, char ch; int i; float f;
double d; long double r;

r
char



int

int

float

float

double

int
ch 2 (i 0.5) (f d) 7


int




Aşikar tip çevirmələri əməlinin formatı aşağıdaki kimidir:
(tipin adı) operand
Operand sabitlər, dəyişənlər və ifadələr ola bilər. Nəticədə operandın tipi göstərilən tipə çevrilər. Tiplərin aşikar çevirmələrinə aid misallar:


(long)8; (float)a; (int)x%2;
əməli digər binary əməllər kimi üstünlük dərəcəsi böyük olduğuna görə 3-cü ifadədə x dəyişəninin tipi əvvəlcə tam tipə çevrilir və sonra isə modula görə bölmə əməli yerinə yetirilir.
Aşağıdaki proqram fraqmentinə baxaq:
float c;
int a=1, b=2;
c=(float)a/b;
Nəticədə c-dəyişəni 0.5 qiymətini alar. Əgər tiplərin aşikar çevrilməsi əməli tətbiq olunmasa idi onda c-dəyişəni “0”-qiymətini alardı.
Sizeof əməli. Bu əməl iki formada yazıla bilər: sizeof(tip) və sizeof(ifadə). Əməlin nəticəsi “tip”-in və ya ifadənin hesablanmasından alınan qiymətin yaddaşda tutduğu baytların sayı olur. Sizeof(ifadə) əməlində ifadənin qiymətinin tipinə görə baytların sayı hesablanır. Bu əməlin üstünlük dərəcəsi binar hesabi əməllərin, məntiq və müqayisə əməllərinin üstünlük dərəcəsindən böyükdür. Əməlin istifadə olunmasına aid misallar:
Sizeof(int) nəticə 2 bayt
Sizeof(1) nəticə 2 bayt
Sizeof(0.1) nəticə 8 bayt
Sizeof(1L) nəticə 4 bayt
Sizeof(char) nəticə 1 bayt
Sizeof (`a`) nəticə 2 bayt


Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   7   8   9   10   11   12   13   14   ...   74




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin