U holda р = &a[0]; ekvivaliyent va р = А0 bo’ladi.
а va р identifikatorlar – ko’rsatgichlar, demak adresli arifmetikani hisobga olib a massivning i-chi elementiga murojaat quyidagi bir xil natijalar beruvchi ifodalar ko’rinishida yozish mumkin:
а[i] *(а + i) *(р + i) р[i]
Ko’rsatgichga ko’rsatgich
Ko’rsatgichlar ham boshqa ixtiyoriy tipdagi o’zgaruvchilar kabi masiivlarda birlashishi mumkin.
y o‘zgaruvchining qiymatini p massivning elementi orqali topish uchun *p[1] deb yozish kerak bo’ladi.
C/C++ tilida “ko’rsatgichga ko’rsatgich" tipli o'zgaruvchini e'lon qilish mumkin. Bu qandaydir o'zgaruvchiga ko'rsatgichning adresini saqlaydigan xotira yacheykasi (o'zgaruvchi). Ushbu tipdagi ma'lumotlar uchun nom oldidan "*" belgisi takrorlanadi, ya’ni “**” qo’yiladi. Yulduzchalar soni ko’rsatgichlarning bir-biriga ichki joylashish darajasini belgilaydi. Ko'rsatgichlarga ko'rsatgichlarni e'lon qilishda ularni initsializatsiyalash mumkin.
Masalan:
int a = 5;
int *p = &a;
int **pp = &p;
int ***ppp = &pp;
Agarda a o’zgaruvchiga yangi a=10; qiymati ta’minlansa, u holda quyidagi miqdorlarning ham qiymatlari 10 bo’ladi:
*p **pp ***ppp
a o’zgaruvchi uchun ajratilgan xotiraga murojaat qilishda indekslardan foydalanish mumkin, ya’ni quyidagi ifodalar ekvivaliyent hisoblanadi:
*p ~ p[0] ;
**pp ~ pp[0][0] ;
***ppp ~ ppp[0][0][0] .
Ko’rsatgichga ko’rsatgichdan foydalanib, ko’p o’lchivli massivlar bilan ishlash imkoniga ega bo’lamiz.