Student*ps;
Strukturaga ko’rsatkich ta’riflanganda initsializatsiya qilinishi mumkin:
Student *ps=&mas[0];
Ko’rsatkich orkali struktura elementlariga ikki usulda murojaat qilish mumkin. Birinchi usul adres bo’yicha qiymat olish amaliga asoslangan bo’lib quyidagi shaklda qo’llaniladi:
(* strukturaga ko’rsatkich).element nomi;
Ikkinchi usul maxsus strelka (->) amaliga asoslangan bo’lib quyidagi ko’rinishga ega:
strukturaga ko’rsatkich->element nomi
Struktura elementlariga quyidagi murojaatlar uzaro tengdir:
cin>>(*ps).name;
cin>>ps->title;
Bitli maydonlar
Bitli maydonlar strukturalarning xususiy xolidir. Bitli maydon ta’riflanganda uning uzunligi bitlarda ko’rsatiladi (butun musbat konstanta).
Misol:
struct {
int a:10;
int b:14}xx,*pxx;
. . . .
xx.a=1;
pxx=&xx;
pxx->b=8;
Bitli maydonlar ixtiyoriy butun tipga tegishli bo’lishi mumkin. Bitli maydonlar adresini olish mumkin emas. Xotirada bitli maydonlarni joylashtirish kompilyator va apparaturaga bog’liq.
Birlashmalar
Strukturalarga yakin tushuncha bu birlashma tushunchasidir. Birlashmalar union xizmatchi so’zi erdamida kiritiladi. Misol uchun:
union {long h; int i,j; char c[4]}UNI;
Birlashmalarning asosiy xususiyat shundaki uning xamma elementlari bir xil boshlang’ich adresga ega bo’ladi.
Masalan:
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:”<
Do'stlaringiz bilan baham: |