R. A. Ro‘ziyev, U. M. Mirsanov, F. J. Toxirov, L. S. Isroilova, H. N. Arziqulov
Download 1.27 Mb.
|
C qo`llanma 29.06
- Bu sahifa navigatsiya:
- Vositali murojaat qilish amali
Ko‘rsatkich ustidan amallar
Ko‘rsatkich ustidan quyidagi amallar bajarilishi mumkin: 1) obyektga vositali murojaat qilish; 2) qiymat berish; 3) ko‘rsatkichga konstanta qiymatni qo‘shish; 4) ayirish; 5) inkrement va dekrement; 6) solishtirish; 7) turga keltirish. Vositali murojaat qilish amali Bu amal ko‘rsatkichdagi manzil bo‘yicha joylashgan qiymatni olish yoki qiymat berish uchun ishlatiladi: char x; // char turidagi o‘zgaruvchi e’loni; char *y =new char; // ko‘rsatkich e’lon qilinib, unga dinamik ajratilgan xotiraning manzilini berish; *y=‘b’; // y manziliga qiymat joylashtirish; x =*y; // x o‘zgaruvchiga y manzili qiymatini berish; Shuni aytib o‘tish kerakki, xotirani bitta joyining manzilini bir paytni o‘zida bir nechta va turli toifadagi ko‘rsatkichlarga berish mumkin va murojaat qilganda har xil qiymatlar qabul qilishi mumkin: unsigned long int F=0Xcc77ffaa; unsigned short int*a_int = (unsigned short int*) &F; unsigned char* a_char=(unsigned char *) &F; cout<<”*a_int =”<<*a_int<<” *a_char=”< printf(“ | %x | %x | %x | “ , F, *a_int, *a_char); Bu misolda quyidagi qiymatlar chop etiladi: cc77ffaa | ffaa | aa | Agar har xil turdagi ko‘rsatkichlarga qiymatlar berilsa, albatta turga keltirish amalidan foydalanish lozim: int n=5; float x=1.0; int *pi=&n; float *px=&x; void *p; int *r,*r1; px=(float *)&n; p=px; r=(int *)px; r1=pi; Ko‘rsatgich turini void turiga keltirish kerak emas (amal ma’noga ega emas). Xuddi shunday, turlari bir xil bo‘lgan ko‘rsatkichlar uchun turni keltirish amalini bajarishga ehtiyoj yo‘q. Ko‘rsatkich ustidan bajariladigan arifmetik amallarda avtomatik ravishda turlarni o‘lchovi hisobga olinadi. Arifmetik amallar faqat bir xil turdagi ko‘rsatkichlar ustidan bajariladi va asosan, massivlar uchun qo‘llaniladi. Inkrement amali ko‘rsatkichni massivning keyingi elementiga, dekrement esa aksincha, oldingi element manziliga ko‘chiradi. Bunda ko‘rsatkichning qiymati (manzil) sizeof( Masalan: short int *p=new short [5]; long * q = new long [5]; p++; // p qiymati 2 oshadi; q++; // q qiymati 4 ga oshadi; q+=3; // q qiymati 3*4=12 oshadi. Ko‘rsatkichlarning ayirmasi deb, ular ayirmasini tur o‘lchami bo‘linishiga aytiladi. Ko‘rsatkichlarni o‘zaro qo‘shish mumkin emas. Download 1.27 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling