(*pa).color=red;
pa->x=125;
pa->y=300;
Dasturda nuqtaviy jismni tasvirlovchi particle strukturali tipga tegishli m_point strukturasi aniqlangan bo’lsin. Shu strukturaga pinta ko’rsatkichini kiritamiz:
Struct particle * pinta=&m_point;
Bu holda m_point struktura elementlarini qo’yidagicha o’zgartirish mumkin:
Pinta->mass=18.4;
For (I=0;I<3;I++)
Pinta->coord[I]=0.1*I;
Strukturalar va funktsiyalar.
Strukturalar funktsiyalar argumentlari sifatida yoki funktsiya qaytaruvchi qiymat kelishi mumkin. Bundan tashqari ikkala holda ham strukturaga ko’rsatkichlardan foydalanish mumkindir. Misol uchun kompleks son modulini hisoblash dasturini keltiramiz:
Double modul(complex a)
{return sqrt(a.real*a.real+a.imag*a.imag}
Ikki kompleks son yigindisini hisoblash funktsiyasi:
Complex add(complex a, complex b)
37
{ complex c;
c.real=a.real+b.real;
c.imag=a.imag+b.imag;
return c;
}
Bu funktsiyani ko’rsatkichlar yordamida qo’yidagicha yozish mumkin
Complex* add(complex* a, complex* b)
{ complex* c; c=(complex*)malloc(sizeof(complex));
c->real=(*a).real+(*b).real;
c->imag=(*a).imag+(*b).imag;
return c;
}
Bu funktsiya complex tipidagi dinamik ob'ekt yaratib adresini qaytaradi. Dasturda bu ob'ekt uchun ajratilgan joyni ozod qilish maqsadga muvofiq. Bu funktsiyaga dasturda qo’yidagicha murojaat qilish mumkin:
Complex a={0.1,-0.3},b={0.2,-0.5};
Complex* pa; pa=add(&a,&b);
38
BIRLASHMALAR
Birlashmalar xotiraning bitta sohasida (bitta adres bo‘yicha) har xil
turdagi bir nechta berilganlami saqlash imkonini beradi.
Birlashma e’loni union kalit so‘zi, undan keyin identifikator va blok
ichida har xil turdagi elementlar e’lonidan iborat bo‘ladi, masalan:
union Birlashma
Do'stlaringiz bilan baham: |