Ko‘rsatkichli toifa(Pointer) Ko‘rsatkichlitoifama’lumotlarni ko‘rsatkichlari yoki manzillari (adres)
to‘plamini namoyon qiladi, ya’ni ko‘rsatkichlar ma’lumotlarni emas balki bu
ma’lumotlar joylashgan xotiradagi manzilni o‘z ichiga oladi. Ko‘rsatkichlar
xotirada bori yo‘g‘i 4 bayt joyni egallab, u ko‘rsatayotgan ma’lumotlar ancha katta
joyni egallagan bo‘lishi mumkin. Pointer toifasi ma’lumoti ixtiyoriy boshqa biror
ma’lumot yoki ma’lumotlar guruhiga yo‘naltirilgan bo‘ladi. Ko‘rsatkichga
mumkin bo‘lgan u yoki bu qiymatni o‘zlashtirib, ushbu ko‘rsatkich orqali kerakli
ma’lumotga murojatni amalga oshirish mumkin. Pointer toifasidagi ma’lumotlarni
qiymatlar to‘plamida bitta maxsus qiymat bo‘lib, uni o‘zlashtirish hech qayerga
yo‘naltirilmaganligini ko‘rsatadi, ya’ni nol yoki bo‘sh ko‘rsatkich xisoblanadi.
Masalan, C++ tilida bunday qiymat sifatida NULLdan foydalaniladi.Ko‘rsatkichlar
ustida amallar quyidagicha bo‘lishi mumkin: biror bir ko‘rsatkichga boshqa
ko‘rsatkich qiymatini o‘zlashtirish mumkin yoki boshqa ma’lumot egallab turgan
xotira sohasi adresini o‘zlashtirish mumkin. Ko‘rsatkichlar o‘zaro bog‘langan
ma’lumotlar tuzilmasini yaratishda va qayta ishlashda katta ahamiyatga ega.
Xotirada ko‘rsatkichlarni ifodalash uchun uchun asosan dasturlash tizimiga mos
ravishda manzilni maksimal uzunligicha joy ajratiladi. Ko‘rsatkichlarni qiymati
nomanfiy butun sonlar sifatida sohada bitlarni ketma-ketligi ko‘rinishida
saqlanadi.C++ tilida ko‘rsatkichli o‘zgaruvchilarni e’lon qilish uchun ularning
toifasini aniqlash kerak. Buning uchun ko‘rsatkich xotirada qanaqa toifadagi
ma’lumotlarni ko‘rsatayotgan bo‘lsa, ko‘rsatkichli o‘zgaruvchiga xam xuddi
shunday toifa beriladi.
int a=9;
int *p=&a;
float f=4.6;
float *d=&f;