Prefiks va postfiks
Inkrement operatori ham, dekrement operatori ham ikki variantda ishlaydi: prefiksli va postfiksli. Perefiksli variantda ular o'zgaruv-chidan oldin (++Age), postfiksli variantda esa o'zgaruvchidan keyin (Age++) yoziladi.
Oddiy ifodalarda bu variantlarni qo‘llanishida farq katta emas, lekin bir o‘zgaruvchiga boshqa o‘zgaruvchining qiymatini o‘zlashtirishda ulaming qo‘llanilishi boshqacha xarakterga ega. Prefiksli operator qiymat o'zlashtirilguncha, postfiksli operator esa qiymat o‘zlashtirilgandan keyin bajariladi. Buni quyidagi rasmdan ko'rishimiz mumkin:
1: #include 2: using namespace std;
1 : int main()
4 : {
■: int myAge = 39;
int yourAge = 39;
~: cout << «Men « << myAge <<» yoshdaman \n>>;
8: cout « «Siz « « yourAge <<» yoshdasiz \n>>;
8: myAge++ ; // postfiksli inkrement
10: ++yourAge; // prefeksli inkrement
11: cout « «Bir yil o'tdi...\n>>;
12; cout << «Men « myAge <<» yoshdaman \n»;
13: cout << «Siz « « yourAge <<» yoshdasiz \n>>;
14: cout « «Yana bir yil o'tdi \n>>;
■5: cout « «Men «« myAge++ «» yoshdaman \n>>;
16: cout « «Siz «<<++yourAge<<>> yoshdasiz \n>>;
1>: cout << «Mazlumotlarni qaytadan chiqaramiz . . . \n>>;
18: cout << «Men «<< myAge«» yoshdaman \n»;
±9: cout « «Siz ««yourAge«» yoshdasiz \n»;
20: return 0;
21: }
NATIJA:
Men 39 yoshdaman
Siz 39 yoshdasiz
Bir yil o'tdi...
Men 40 yoshdaman
Siz 40 yoshdasiz
Yana bir yil o'tdi
Men 40 yoshdaman
Siz 41 yoshdasiz
Ma'lumotlarni qaytadan
chiqaramiz...
Men 41 yoshdaman
Siz 41 yoshdasiz
- rasm. Prefiksli va postfiksli operatorlaming qo'llanishi.
§ 11.4. C++ dasturlash tilida ifodalar va operatorlar
335
Operatorlar prioriteti
Murakkab ifodalarda qaysi amal birinchi navbatda bajariladi, qo'shishmi yoki ko‘paytirishmi? Masalan:
x=5+3*8;
ifodada agarda birinchi qo‘shish bajarilsa natija 64 ga, agarda ko‘paytirish birinchi bajarilsa natija 29 ga teng bo‘ladi.
Har bir operator prioritet qiymatiga ega. Ko‘paytirish qo'shishga nisbatan yuqoriroq prioritetga ega. Shuning uchun bu ifoda qiymati 29 ga teng bo'ladi.
Agarda ikkita matematik ifodaning prioriteti teng bo'lsa, ular chapdan o'ngga qarab ketma - ket bajariladi.
Demak:
x=5+3+8*9+6*4
ifodada birinchi ko‘paytirish amallari chapdan o'ngga qarab bajariladi
8*9=72 va 6*4=24. Keyin bu ifoda soddaroq ko'rinish hosil qiladi: x=5+3+72+24
Endi qo‘shishni ham xuddi shunday chapdan unga qarab bajaramiz:
5+^8; 8+72 = 80; 80+24=104;
Lekin, barcha operatorlar ham bu tartibga amal qilmaydi. Masalan. o'zlashtirish operatori o'ngdan chapga qarab bajariladi.
Do'stlaringiz bilan baham: |