9. Satrlar va tuzilmalar
Download 244,41 Kb.
|
09.Satrlar va tuzilmalar
9.4. TuzilmalarTuzilma (Struktura) – bu bir nom bilan birlashtirilgan oʻzgaruvchilar (a’zolar, elementlar yoki maydonlar deb nomlanuvchi) mosligidir. Strukturani e’lon qilish umumiy holda quyidagicha koʻrinishga ega: struct [ } [ Agar yopuvchi figurali qavsdan keyin oʻzgaruvchi e’lon qilingan boʻlsa, strukturasning nomini bermaslik ham mumkin. Sturktura e’loni oxirida nuqtali vergul qoʻyish majburiy. Tuzilmani e’lon qilish berilganlarning yangi tipini ifodalaydi xalos, shu sababli unga xotira ajratilmaydi. O‘zgaruvchini e’lon qilihh uchun uning nomi yopiluvchi qavsdan keyin qo‘yiladi yoki berilganlarning tipi sifatida struktura nomi ko‘rsatilib, alohida e’lon qilinadi. [struct] O‘zgaruvchini e’lon qilishda struct kalit so‘zini ko‘rsatmaslik ham mumkin. O‘zgaruvchi e’lon qilinganidan keyin kompilyator zarur xotira hajmini ajratadi. Dastur ichida struktura o‘lchamini olish uchun sizeof operatoridan foydalanish lozim: Struktura va o‘zgaruvchini bir vaqtda e’lon qilishga misol keltiramiz. struct Point{ int х; int у; } point1; O‘zgaruvchini alohida e’lon qilish quyidagicha ko‘rinishda bo‘ladi: Point point2; Maydonga qiymat berish yoki qiymatni olish uchun nuqta notatsiyasidan (shartli nuqta) foydalanish mumkin: Misol: point1.x = 0; z = point2.у; Bir strukturani "=" operatori yordamida boshqa strukturaga o‘zlashtirish mumkin. Bunda strukturaning barcha maydoni nusxalanadi. Strukturaga strukturani o‘zlashtirishga misol: point2 = point1; Strukturalarni ichma-ich ifodalash mumkin. Bunda ichki struktura maydoniga murojaat qilish uchun qo‘shimcha ravishda ajdod struktura nomi ko‘rsatiladi. Misol tariqasida to‘g‘ri to‘rtburchakni ifodalovchi Point (nuqta) strukturasini nomsiz elon qilish dasturi listinggini keltirib o‘tamiz. #include struct Point { // Nomlangan strukturani e'lon qilish int x; int y; }; struct { // Nomsiz strukturani e'lon qilish Point top_left; Point bottom_right; } rect; int main() { rect.top_left.x = 0; rect.top_left.y = 0; rect.bottom_right.x = 100; rect.bottom_right.y = 100; cout << rect.top_left.x << "\t" << rect.top_left.y << endl; cout< return 0; } Struktura manzilini ko‘rsatkichda saqlash mumkin. Strukturaga ko‘rsatkichning e’loni boshqa tiplarga ko‘rsatkich kabi e’lon qilinadi. Struktura manzilini olish uchun "&" operatoridan foydalaniladi, struktura maydoniga kirish uchun nuqta o‘rniga "->" operatori qo‘llaniladi. Strukturaga ko‘rsatkichdan foydalanishga misol quyidagi listingda keltirilgan. #include struct Point { // Struktura va o'zgaruvchini e'lon qilish int х; int у; } point1; Point *р = &point1; // Ko'rsatkichni e'lon qilish int main() { р->х = 10; р->у = 20; cout << р->х << "\t" << р->у << endl; cin.get(); return 0; } Bitli maydonlar. Berilganlarning mantiqiy tipi bool faqat true ('1') yoki false ('0') qiymat olishi mumkin. Bu qiymatlar bir bitga joylashadi, ammo bool tipi xotirada bir baytni band qiladi. Qolgan yeti bit qiymatlar olmaydi. C++ tili alohida bitlarga kirishni ta’minlovchi bitli maydonlarni ta’minlaydi va shu tariqa koʻrsatilgan sondagi bitlarni olgan bir oʻzgaruvchida bir nechta qiymatlarni saqlash imkonini beradi. Shuga qaramasdan, bitli maydonning minimal o‘lchami int ('32' bitli operatsion tizimda '4' bayt band qiladi) tipiga mos kelishini hisobga olish lozim. Bitli maydon e’loni: struct[ } [ Bir strukturada bir vaqtda ham bitli, ham oddiy maydonlardan foydalanish mumkin. Bitli maydonning nomini ko‘rsatish shart emas. Bundan tashqari maydonning uzunligi bir bitga teng bo‘lsa, nomdan oldin unsigned kalit so‘zini ko‘rsatish lozim. Bitli maydon va o‘zgaruvchini e’lon qilishga misol: struct Status { unsigned :3; unsigned а:1; unsigned b:1; unsigned с:1; } status; Maydonga kirish struktura maydoniga kirish kabi amalga oshiriladi: status.а = 1; status.b = 0; status.с = 1; Download 244,41 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling