8. Структуралар ва бирлашмалар
~ 41 ~
}
8.8. Структураларда кўрсаткич
Структуралар билан ишлаш жараёнида структурага қўйиладиган
кўрсатгичлар билан ишлашга тўғри келади. Биринчи навбатда кўрсатгич қандай
амаллигини билиб олишимиз керак бўлади. Кўрсаткич
- хотира уясининг
уникал адресини сақлайдиган ўзгарувчи. Кўрсаткич оператив хотирадаги
бирон-бир ўзгарувчи мавжуд бўлиши мумкин бўлган
бирон-бир жойни
белгилайди. Кўрсаткичларнинг қийматларини ўзгартириш, турли вариантларда
қўллаш мумкинки, бу дастурнинг мослашувчанлигини оширади. Кўрсаткич
одатда типга эга бўлиб қуйидагича эълон қилинади:
<турнинг номи>*<кўрсаткичнинг номи>=<дастлабки қиймат>
Мисол учун:
int *pr;
char *alfa;
Бу холда кўрсаткичлар ноаниқ қийматга эга бўлади. Кўрсаткичлар
таърифланганда уларнинг типлари кўрсатилиши шарт. Кўрсаткичларни
инициализация қилиш, яъни бошланғич қийматларини киритиш мумкин.
Маълум турдаги бирон-бир ўзгарувчи адреси ёки NULL қиймат
дастлабки
қиймат бўлиши мумкин. Кўрсаткичларга бошланғич махсус NULL қиймати
берилса бундай кўрсаткич бўш кўрсаткич деб аталади.
Бирон-бир ўзгарувчи адресини олиш ҳамда уни кўрсаткичга қиймат
сифатида бериш учун «&» оператори қўлланади.
Мисол:
int I=100;
int*p=&I;
unsigned longint *ul=NULL;
Агар структуранинг бирон – бир элементини кўрсатгич билан
аниқланиши мумкин. Бу қуйидаги мисолда кўриб чиқамиз.
Мисол сифатида
унивеситет ёки институт талабаси мисолида кўрамиз. Яратилаётган
структурамизда қуйидаги майдонлар мавжуд бўлсин. Талабанинг фамилияси,
исми, туғилган куни, ойи ва йили, талабалнинг оғирлиги ва бўйи (метрда).
struct Talaba{
char*
familyasi;
char* ismi;
int kun;
int oy;
int yil;
float massa;
float buyi;
}
Бу структурада кўриб турганимизда иккита майдон кўрсатгич ёрдамида
эълон қилинган. Бу эълон қилинган майдонлар белгили типда эълон қилинган.
8.8. Структураларда кўрсаткич
~ 42 ~
Кўрсатгич ёрдамида эълон қилинган белгили ўзгарувчи сатрларни ҳам қиймат
сифатида олиши мумкин.
Юқорида берилган структура ёрдамида мисол дастур яратамиз.
#include
#include
using namespace std;
struct Talaba
{
char* familyasi;
char* ismi;
int kun;
int oy;
int yil;
float massa;
float buyi;
};
int main()
{
Talaba t;
t.familyasi = "Aliyev";
t.ismi = "Maqsud";
t.kun = 8;
t.oy = 8;
t.yil = 1992;
t.massa = 62;
t.buyi = 1.72;
printf("FIOsi: %s %s\nTY:%i-%i-%i\nOg'irligi: %4.2f kg\nBuyi: %4.2f
m", t.familyasi,t.ismi,t.kun,t.oy,t.yil,t.massa,t.buyi);
return 0;
}
Do'stlaringiz bilan baham: