Құрылым элементеріне рұқсат алу


Құрылым элементтеріне рұқсат алу нақты атау бойынша  қамтамасыз луға болады.

құрылым_аты.элемент_аты

конструкциясы құрылымдық тип сипаттамасын ойнайды.

Біздің struct goods құрылымдық типін инициализациялау мысалымызда:

coat.name - char[]  типті массиві "қара пиджак ";

coat.price  - long  типті мәні 400000 айнымалы;

coat.percent - float типті мәні 7.5айнымалы;

coat.vol - int типті мәні 220 айнымалы;

coat.date -"12.01.97"  тұратын char [9] типті массиві.

Нүктенің алдында  құрылымдық типтің аты емес, оның сипатталуына жды бөлінген нақты құрылымның аты тұрғанына назар аударыңыз.

Нақыланған ат – бұл екі операндамен және олардың арасындағы "нүктеден" тұратын өрнек. "Нүкте"  оперциясы құрылым элементіне рұқсат алу операциясы деп талады.

Егер құрылымды сипаттауда ол инициализцияланған болса, онда оның элементтері сәйкес бастапқы мәндерін алады. Нақталанған аттың көмегімен бұл мәндер , мысалы, экранға шығады.

Құрылым элементінің нақтылы аты сәйкес типтегі обьектілердің брлық ережелерінен тұрады. Оларды өрнектерде қолдануға болады, олардың мәндерін пернетқтадан енгізуге болады.

Құрылымдар массиві. Құрылымдық типтің массивтері басқа типтегі массивтер сияяқты сипатталады. Анық айырмашылығы – құрылымдық тип атауындағы struct қызметші сөзінде. Жоғарыда енгізілген құрылымдық типтерді анықтау келесідей:

struct goods  list [5];

Бұл сөйлем list-ті goods құрылымдық типтегі, 5 элементтен тұратын массив ретінде анықтайды. List аты құрылымның аты болып табылмайды, ол элементтері құрылым болатын массив аты. list[0] - goods типінің құрылымы, list[1] - list[ ]  массивінің goods типті екінші құрылымы жіне т.б.

Құрылым массиві құрамына кіретін құрылым компонентеріне рұқсат алу үшін, бірінші аты индекстелген нақтыланған атау қолданылады . Мысалы:

list[0].price - list[ ] құрылым массивіне бірінші элемент ретінде (нөлдік индекспен) кіретін, goods  типті құрылымның long типті екінші компоненті (price атты).

1  суретте list[ ] массивін шартты түрде жадыға орналастыу сызбасы берілген. Оның элементтері (басқа массив элементтері сияқты) негізгі жадта индексінің өсуі бойынша ретпен орналасады.

Рис. 1. Құрылым массиві (100 элементтен құралған)

Массивке сәйкес құрылым компонентеріне рұқст алудағы нақтылы атаудың индекстелуіне тағы бір назар аударыңызда. Индекс құрылым массивінің атауынан кейін жазылады. Сөйтіп, массивтен қажетті құрылым  бөлінеді, ал нүкте мен онан кейінгі атау көмегімен құрылымның сәйкес компоненті идентифицирленеді. Мысалы,

list.percent[8]        /*  Қате  !     */ -жазылымы қате атау; percent – массив емес, float типті айнымалы.

Құрылым массивін сипаттау:

struct goods list [5];

Баса типтегі массивтер сияқты, құрылымдық массив сипатталуында инициализациялана алады. Құрылымдық  массив инициализаторы фигуралық жақша ішіндегі массивтің бастапқы элементтерінің тізімінен тұруы мүмкін.  Өз кезегінде, құрылым үшін әр бастапқы мән – бұл оның комонентерінің мәндерінің тізімі(фигуралы жақша ішінде).

Мысал

Төменде кестеде көрсетілген берілгендерді сипаттау

Фамилия

Туған жылы

Телефоны

Үй адресі

Иванов

1980

33-22-11

ул. Чехова, 1

Петров

1981

44-55-66

пр. Шакарима, 126

Сидоров

1980

34-22-11

ул. Ленина, 50

struct stroka

{

char f[20];

int g;

char tel[8];

char adres[40];

};

struct stroka tab[3];

Осындай берілгендерді сипаттаудан кейін, tab массивінің элементтері жоғары кестеде берілген бүтін жол екенін түсіну керек, яғни:

tab[0] – бұл

Иванов

1980

33-22-11

ул. Чехова, 1

tab[1] – бұл

Петров

1981

44-55-66

пр. Шакарима, 126

tab[2] – бұл

Сидоров

1980

34-22-11

ул. Ленина, 50