union{
char s[10];
int x;
}u1;
Quyidagi dastur yordamida bu xususiyatni tekshirish mumkin:
enum paytype{CARD,CHECK};
struct{
paytype ptype
union{
char card[25];
long check;
};
}info;
switch (info.ptype)
{
case CARD:cout<<”\nKarta bilan to’lash:”<
case CHECK:cout<<”\nChek bilan to’lash:”<
}
Massivlar va satrlar
Massivlarni ta’riflash. Massiv indeksli o’zgaruvchidir.
Massiv sodda ta’rifi:
>[] = ;
Massiv indekslar qiymati har doim 0 dan boshlanadi.
Ko’p o’lchovli massiv initsializatsiya qilinganda massivning birinchi indeksi chegarasi kursatilishi shart emas, lekin qolgan indekslar chegaralari kursatilishi shart.
Misol uchun:
int a[6]; float b[8],c[100];
double d[] q {1, 2, 3, 4, 5};
int A [20][10];
int A [30][20][10];
int A [3][3] = {0,1,2,3,4,5,6,7,8,9,10,11};
int A[ ][3] q { {0,1,100}, {200,210,300}, {1000, 2000, 2100}};
Satrlar. Satrli konstanta ikkilik qavslarga olingan simvollar ketma ketligidir. Satrli konstanta oxiriga avtomatik ravishda satr ko’chirish ‘\n’ simvoli qo’shiladi.
Satr qiymati simvolli konstanta bo’lgan simvolli massiv sifatida ta’riflanadi.
Misol uchun:
Char capital[]=”TASHKENT”;
Char capital[]={‘T’,’A’,’S’,’H’,’K’,’E’,’N’,’T’,’\n’};
char A[ ][9] = { “Tashkent”, ”Samarkand”, ”Xiva”};
Massivlar va satrlar funksiya parametrlari sifatida. Funksiyalarda massivlar argument sifatida ishlatilganda ularning birinchi indeksi chegarasini kursatish shart emas, qolganlarini chegarasini ko’rsatish shart. Massivlar ilova bo’yicha uzatiladi, ya’ni ularning qiymati funksiyada o’zgarishi mumkin.
Misol:
//massiv elementlari summasini hisoblash
int sum (int n, int a[] )
{int i, int s=0;
for( i=0; i
s+=a[i];
return s;
}
Satrlar parametrlar sifatida char[] tipidagi bir o’lchovli machssivlar sifatida uzatilishi mumkin. Bu xolda satr uzunligini aniq ko’rsatish shart emas.
Misol:
//simvollar sonini xisoblash
int strlen ( char a[])
{ int iq0; while(a[i++]);
return i;}
Dinamik massivlar
O’zgaruvchi o’lchamli massivlarni shakllantirish ko’rsatkichlar va xotirani dinamik taqsimlash vositalari yordamida tashkil etiladi.
Xotirani dinamik taqsimlash uchun new va delete operatsiyalardan foydalaniladi. Operatsiya
new ()
tip ismi orqali belgilangan ma’lumotlar tipiga mos keluvchi o’lchamli bo’sh xotira qismini ajratish va unga murojaat etish imkonini beradi. Ajratilgan xotira qismiga initsializator orqali aniqlangan qiymat kiritiladi. Xotira ajratilsa xotira ajratilgan qismining bosh adresi qaytariladi, agarda xotira ajratilmasa NULL qaytariladi.
new operatsiyasi orqali oldindan ajratilgan xotira qismi delete operatsiyasi yordamida bo’shatiladi.
Misollar:
int *i; i=new int(10);
delete i;
Operatsiya
new ()
O’zgaruvchilar massiviga xotira ajratishga imkon beradi.
Misollar:
int *mas=new[5];
delete [] mas;
skalyar o’zgaruvchilarga xotira ajratilish 1 misolda ko’rsatilgan..
Matritsani shakllantirishda oldin bir o’lchovli massivlarga ko’rsatuvchi ko’rsatkich massivlar uchun xotira ajratiladi, keyin esa parametrli tsiklda bir o’lchovli massivlarga xotira ajratiladi.
Misol:
int n,m; cin>>n;
matr=new int*[n];
for (i=0;i
{cin>>m;
matr[i]=new int[m];
Xotirani bo’shatish uchun bir o’lchovli massivlarni bo’shattiruvchi tsiklni bajarish zarur.
for(int i=0;i
delete matr[i];
keyin esa matr ko’rsatkich ko’rsatgan xotira bo’shattiriladi.
delete [] matr;
Do'stlaringiz bilan baham: |