Ko‘rsatkichga ko‘rsatkich


ULASHISH

Ko‘rsatkichga ko‘rsatkich

Shuningdek, boshqa ko‘rsatkichga ishora qiluvchi ko‘rsatkich ham bo‘lishi mumkin. Bu ko‘rsatkichga ko‘rsatkich (yoki "qo‘sh ko‘rsatkich", double pointer) deb ataladi.

Avvaliga bu chalkash tuyulishi mumkin, lekin bu shunchaki bilvosita murojaatning yana bir darajasi: boshqa ko‘rsatkichning manzilini saqlaydigan ko‘rsatkich.

Buni shunday tasavvur qiling: Oddiy ko‘rsatkich ustiga manzil yozilgan qog‘ozga o‘xshaydi. Ko‘rsatkichga ko‘rsatkich esa o‘sha birinchi qog‘oz qayerda saqlanayotganini aytadigan boshqa bir qog‘ozga o‘xshaydi.

Eslatma: Boshlovchi sifatida ko‘rsatkichga ko‘rsatkichdan tez-tez foydalanishingiz shart emas. Biroq uni murakkabroq dasturlarda uchratishingiz mumkin, shuning uchun u nimani anglatishi va qanday ishlashini tushunib olgan ma’qul.

Bu qanday ishlashini tushunish uchun oddiy misolni ko‘rib chiqaylik:

Misol

int myNum = 10;       // normal variable int *ptr = &myNum;    // pointer to int int **pptr = &ptr;    // pointer to pointer printf("myNum = %d\n", myNum); printf("*ptr = %d\n", *ptr); printf("**pptr = %d\n", **pptr);

Natija:

myNum = 10
*ptr = 10
**pptr = 10

O‘zingiz sinab ko‘ring »

Qadam-baqadam quyidagilar sodir bo‘ladi:

  • myNum 10 qiymatini saqlaydi.
  • ptr myNum o‘zgaruvchisining manzilini saqlaydi.
  • pptr ptr o‘zgaruvchisining manzilini saqlaydi.
  • *ptr myNum o‘zgaruvchisining qiymatini beradi.
  • **pptr ham ikkala ko‘rsatkich orqali o‘tib, myNum o‘zgaruvchisining qiymatini beradi.

Demak:

  • *ptr = myNum qiymati
  • **pptr = ikkala daraja orqali olingan myNum qiymati


Ko‘rsatkichga ko‘rsatkich orqali qiymatlarni o‘zgartirish

**pptr asl o‘zgaruvchiga murojaat qilgani uchun undan o‘zgaruvchining qiymatini o‘zgartirishda ham foydalanishingiz mumkin:

Misol

int myNum = 5; int *ptr = &myNum; int **pptr = &ptr; **pptr = 20; // changes myNum printf("myNum = %d\n", myNum); // prints 20

O‘zingiz sinab ko‘ring »


Xulosa

  • Ko‘rsatkichga ko‘rsatkich boshqa ko‘rsatkichning manzilini saqlaydi.
  • *ptr o‘zgaruvchining qiymatini beradi.
  • **pptr bilvosita murojaatning ikki darajasidan o‘tib, xuddi shu qiymatni beradi.
  • Ular ko‘rsatkichlarni funksiyalarga uzatishda yoki murakkab ma’lumotlar tuzilmalari bilan ishlashda foydali bo‘lishi mumkin.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!