Turlar va C++ da o‘zgaruvchilarni tavsiflash
Har bir nom va har bir o‘zgaruvchi ular ustida bajariluvchi amallar aniqlovchi turlarga ega bo‘ladi. Masalan, int i; tavsiflash i o‘zgaruvchi int turiga tegishli, ya’ni i butun o‘zgaruvchi deb aniqlaydi. Tavsiflash - dasturga nom kirituvchi buyruqdir. Tavsiflash o‘zgaruvchining turini aniqlaydi. Tur nom va ifodalardan to‘g‘ri foydalanishni aniqlaydi. Butun tur uchun quyidagi amallar aniqlangan: +, -, * va /.
Asosiy turlar
Bevosita apparat ta’minotiga javob beradigan asosiy turlar quyidagilar: char; short; int; long; float; double. Birinchi to‘rtta tur butun kattaliklarni, oxirgi ikkitasi suzuvchi nuqtali, ya’ni kasr sonlarni tasvirlash uchun ishlatiladi.
Char turidagi o‘zgaruvchi mazkur kompyuterda belgilarni (odatda bayt) saqlash o‘lchoviga ega, int turidagi o‘zgaruvchi esa mazkur kompyuterdagi butun arifmetikaga mos o‘lchovga ega (odatda so‘z). Turlar bilan tasvirlangan butun sonlar diapazoni uning o‘lchoviga bog‘liq bo‘ladi (uni sizeof buyrug‘i yordamida hisoblash mumkin).
C++ da o‘lchovlar char turidagi kattaliklar o‘lchovi birligida o‘lchanadi. Asosiy turlar o‘rtasidagi munosabatlarni quyidagicha yozish mumkin:
1 = sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) = sizeof(float) <= sizeof(double).
Umuman, asosiy turlar xususida yana boshqa narsalarni faraz qilish ma’nosiz. Xususan, ko‘rsatkichlarni saqlash uchun butun tur yetarli, degan xulosa barcha kompyuterlar uchun to‘g‘ri emas. Asosiy turlarga const so‘zini qo‘shib tavsiflash mumkin. Bu boshlang‘ich turga shu turning o‘zini beradi, faqat bu holatda const turidagi o‘zgaruvchilarning qiymatlari initsializatsiyadan so‘ng o‘zgarishi mumkin emas.
const float pi = 3.14;
const char plus = '+';
Bittalik qo‘shtirnoqqa olingan belgilar belgi o‘zgarmaslar hisoblanadi. Shunga e’tibor berish lozimki, bu usulda tavsiflangan o‘zgarmaslar xotirada joy egallamaydi. Uning qiymati talab qilingan joyda bevosita ishlatiladi. O‘zgarmaslar initsializatsiya paytida tavsiflanishi shart. O‘zgaruvchilar uchun initsializatsiya shart emas, ammo albatta tavsiya qilinadi. Lokal o‘zgaruvchilarni initsializatsiyasiz kiritish asoslari juda ko‘p.
Bu turlarning ixtiyoriy kombinatsiyasiga quyidagi arifmetik amallar:
+ (plyus, unar va binar);
- (minus, unar va binar);
* (ko‘paytirish);
/ (bo‘lish).
hamda taqqoslash amallari:
== (teng);
!= (teng emas);
< (kichik);
> (katta);
<= (kichik yoki teng);
>= (katta yoki teng)
qo‘llanilishi mumkin.
Agar operandlar qo‘yilgan shartni qanoatlantirsa , u holda taqqoslash amallari natijada 1 qiymatni beradi, aks holda esa 0 qiymatni beradi.
Butunga bo‘lish amali butun natijani beradi: 7/2 = 3. Butun kattaliklar ustida % - qoldiqni hisoblash amali bajariladi: 7%2 = 1.
O‘zlashtirishda va arifmetik amallarda C++ ularni guruhlash uchun asosiy turlar o‘rtasida barcha ma’noli almashtirishlarni bajaradi:
double d = 1;
int i = 1;
d = d + i;
i = d + i;
Dostları ilə paylaş: |