C++ tilidagi massivlar Olingan ma'lumotlar turlari


Download 24.64 Kb.
bet1/4
Sana18.12.2022
Hajmi24.64 Kb.
#1030735
  1   2   3   4
Bog'liq
7878 (1)
















C++ tilidagi massivlar




1. Olingan ma'lumotlar turlari


Olingan turlar


* - ko'rsatgich;
& - havola;
[ ] - massiv;
( ) – funksiya;
deklaratsiya operatsiyalari yordamida standart turlar yoki sinflardan olinadi (ularni tip o'zgartiruvchilar deb ham ataladi).

Massiv bir xil nom va bir xil turdagi xotira kataklarining ketma-ket guruhidir.


C++ tilidagi massiv bir xil turdagi elementlar ketma-ketligidir.
Har bir elementga massivdagi joylashuvi orqali kirish mumkin. Ushbu shakl indekslash deb ataladi.
Massiv deklaratsiyasi tip spetsifikatsiyasi, identifikator va o'lchovdan iborat:


Tur spetsifikatsiyasi identifikatori (massiv nomi)



int a [10];

Hajmi

Massivning o'lchami 1 dan katta yoki teng bo'lishi kerak.
Dasturda siz butun massivga (nomi bo'yicha) va massivning alohida komponentlariga (elementlariga) kirishingiz mumkin. Masalan,

int i = 123;


a[2] = i;
i = a[7];
O'lchov qiymati doimiy ifoda bo'lishi kerak, ya'ni. tarjima bosqichida ma'lum bo'lishi kerak. Demak, massiv o‘lchamini o‘rnatish uchun o‘zgaruvchidan foydalanib bo‘lmaydi (Paskalda bo‘lgani kabi).


2. Massivlar. Deklaratsiya sintaksisi


Massivlar hosila turlari (ko‘rsatkichlar ham hosila turlar).


"Ma'lum turdagi elementlar massivi" tipidagi ob'ekt bitta umumiy nom bilan birlashtirilgan bir xil turdagi ob'ektlar ketma-ketligini ifodalaydi. Massivdagi elementlar soni massivning o'ziga xos muhim xususiyatdir, lekin turning o'zi emas. Bu xarakteristikaga massivning o'lchami deyiladi.
Bu erda massivlarni e'lon qilish va aniqlash misollari keltirilgan.

extern int intArray_1[];


int tipidagi massiv e'lon qilinadi (aniqrog'i e'lon qilingan - bu extern spetsifikatsiyasi shunday deydi), massiv nomi intArray_1, ajratuvchilar [] bizda massiv deklaratsiyasi borligini bildiradi.


int array_2[10];


Va bu massivning ta'rifi. Xuddi shu tip int, massiv nomi intArray, ajratuvchilar orasida [ va ] doimiy ifoda mavjud bo'lib, uning qiymati massiv o'lchamini belgilaydi.


Massiv ta’rifidagi chegaralovchilar orasidagi doimiy ifoda uchun sintaksis talabini faqat dastur boshlanishidan oldin massiv elementlari soni haqidagi ma’lumot talab qilinishi bilan izohlash mumkin.
int array_3[] = {1,2,3}; // Bu ham massiv ta'rifidir.

Massiv elementlari soni tarjimonga initsializatorni tahlil qilishda ma'lum bo'ladi. Massiv elementlariga boshlang'ich ro'yxatidan tegishli qiymatlar beriladi.


Massiv ta'rifining yana bir shakli:

int intArray_4[3] = {1,2,3};


Bu massiv ta’rifida massiv initsializatoridagi elementlar soni massiv deskriptoridagi doimiy ifoda qiymatidan oshmasligi muhim.


Ushbu operatorni bajarish natijasida xotirada int tipidagi uchta reprezentativ ob'ektni o'z ichiga olish uchun etarli bo'lgan maydon ajratiladi. Posilkaga intArray_4 nomi berilgan. Elementlar initsializatorning bir qismi bo'lgan qiymatlar bilan ishga tushiriladi.
Massivni qisman ishga tushirish mumkin. Bunday holda, massivning birinchi elementlari qiymatlarni oladi:

int array_5[3] = {1,2};


Ushbu massiv ta'rifida massivning faqat birinchi ikkita elementi belgilanadi. Massivning oxirgi elementining qiymati odatda aniqlanmagan.


Bu erda massivni ishga tushirish sintaksisining qiziqarli xususiyatini ta'kidlash kerak. Bu initsializatorlar ro'yxatining oxiridagi ixtiyoriy verguldir. Ko'rinishidan, uning maqsadi massivni qisman ishga tushirish faktini ko'rsatishdir.
Darhaqiqat, massivni aniqlash operatorining (qisman) ishga tushirilishining oxirgi versiyasi aniqroq ko'rinadi:
int array_5[3] = {1,2,};

Oxirgi vergul massiv qisman ishga tushirilganligi haqida ogohlantiradi. Initsializatorlar roʻyxatining oxiriga vergulni aniq belgilangan qisman ishga tushirish konteksti bilan bogʻlash narxi shunchalik katta boʻlib chiqdiki, oxirgi vergul anʼanaviy tarzda (hech boʻlmaganda C++ dasturlash tili boʻyicha qoʻllanmadan beri) oddiy boʻlib chiqdi. har qanday (shu jumladan to'liq) ishga tushirishning ixtiyoriy elementi.


int array_6[3] = {1,2,3};


int intArray_6[3] = {1,2,3,};// Vergul bilan ishga tushirishni yakunlang
int intArray_6[] = {1,2,3};
int intArray_6[] = {1,2,3,};

Ushbu operatorlar o'rtasida hech qanday farq yo'q.


Ammo bunday kontekstda

int intArray_6[3] = {1,2,}; // Uch elementli massivni qisman ishga tushirish


Jingalak qavslardagi oxirgi vergul foydali bezakdan boshqa narsa emas. Bunday tayinlash operatorida aytilmagan narsa yashiringan.


int array_7[];


Bu noto'g'ri reklama. Tashqi spetsifikatorsiz kompilyator buni xato deb hisoblaydi. Buning sababini birozdan keyin muhokama qilamiz.


Download 24.64 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling