16
o„zgarmas elementlari mavjud va ular dastlab 0 dan boshlab sanaladigan
butun sonli qiymatga ega bo„ladilar. Ayrim hollarda
foydalanuvchi tomonidan
o„zgarmaslarga
ixtiyoriy
sonli
qiymat
ham
o„zlashtirilishi
mumkin.
O„zgarmaslarga qiymatlar o„sish tartibida berilishi kerak. Masalan,
enum Ranglar{oq=100,qora=200,qizil,yashil=400};
Bu yerda qizil o„zgarmasning qiymati 201 ga teng bo„ladi. Endi shu
toifadagi birorta o„zgaruvchini e‟lon qilish mumkin.
Ranglar r=qizil;
Endi r o„zgaruvchi ranglar toifasida aniqlangan o„zgarmaslardan ixtiyoriy
birini qiymat sifatida qabul qila oladi. Masalan:
#include
using namespace std;
int main()
{ enum kunlar{du=1,se,chor};
kunlar hafta;
hafta=chor;
cout<
int kun;
cout<<"\nbugun qaysi kun=";
cin>>kun;
if(kun==chor) cout<<"\ntalabalar bilan uchrashuvingiz bor";
system("pause");
}
Natija: 3
bugun qaysi kun=3
talabalar bilan uchrashuvingiz bor
1.3.2. Ko„rsatkichli toifa
Ko„rsatkichlar ma‟lumotlarni emas, balki bu ma‟lumotlar joylashgan
17
xotiradagi manzilni o„zida saqlaydi. Ko„rsatkichlar xotirada bor yo„g„i 4
bayt joyni egallab, u ko„rsatayotgan ma‟lumotlar ancha katta joyni egallagan
bo„lishi mumkin. Ko„rsatkichlar qanday ishlashini bilish
uchun mashina xotirasi
tashkil etilishining tayanch prinsiplarini bilish lozim. Mashina xotirasi 16 lik sanoq
sistemasida raqamlangan yacheykalar ketma-ketligidan iboratdir. Har bir
o„zgaruvchining qiymati uning adresi deb ataluvchi alohida xotira yacheykasida
saqlanadi. Ko„rsatkichli toifadagi o„zgaruvchilar o„zida
ana shu kabi
o„zgaruvchilar yoki boshqa ma‟lumotlarning xotiradagi adresini saqlaydilar. C++
da o„zgaruvchini ko„rsatkichli toifada e‟lon qilish uchun o„zgaruvchi nomidan
oldin * belgisi qo„yiladi. Har bir o„zgaruvchining toifasi bilan e‟lon qilingani kabi
ko„rsatkichli o„zgaruvchilar ham ma‟lum bir toifa bilan e‟lon qilinadi. Bunda
ko„rsatkichli o„zgaruvchining toifasi – shu ko„rsatkich ko„rsatayotgan
xotira
yacheykasidagi ma‟lumotning toifasi bilan bir xil bo„lishi kerak. Masalan, int a=1
bo„lsin. Ushbu o„zgaruvchining adresini o„zida saqlovchi b ko„rsatkichli
o„zgaruvchini e‟lon qilishda ham int toifasi ishlatiladi, ya‟ni
int *b. Endi bunday
toifadagi o„zgaruvchiga a o„zgaruvchining adresini o„zlashtirish uchun a ning
oldiga
& - adres operatorini qo„yish zarur, ya‟ni
b=&a.
Misol.
#include
using namespace std;
int main()
{ short int a=1234567;
short int *b;
b=&a;
cout<
system("pause");
}
Ko„rsatkichli toifalar yordamida fayllarga ham murojaat qilsa bo„ladi,
masalan quyida f.txt faylidagi ma‟lumotlarni ekranga chiqarish dasturi keltirilgan:
#include