Float sb

} st1 [10], *pst = &st1 [0]; ,

тепер до полів можна звертатися одним з наступних способів:

((*pst). fam)// gets (( *pst) .fam);

( pst -> pr [0] ) // cin >> pst -> pr[0] >> pst -> pr[1];

// або cin >> pst -> * (pr +1).

У бібліотеці для пошуку і сортування структурних змінних маються спеціальні функції. Так , функція швидкого сортування структурних елементів масиву по заданому полю має вигляд :

#include

void qsort (void *base , n , width,

int (* fcmp ) (const void *elem 1, const void -> elem2)) ,

де base— покажчик на перший елемент масиву;

n— кількість елементів масиву;

width -довжина елементів масиву в бітах.

При виконанні сортування функція qsort( ) звертається до заданого користувачем функції.

Функція задається покажчиком на функцію:

int (*fcmp) ( const void *elem1, const void *elem2) .

Функція, на яку вказує fcmp , виконує порівняння двох елементів масиву, на які вказує elem1 і elem2.

Функція повинна повертати значення:

< 0, якщо *elem1 < *elem2;

= 0, якщо *elem1 = *elem2;

> 0, якщо *elem1 > *elem2;

Якщо *elem1 > *elem2 , то елемент, на який указує elem1 розташовується в масиві раніш; "колишній" елемент розташовується в упорядкованому масиві пізніше.

Користувач задає порівнювані поля структурних змінних. Він також може змінити порядок, у якому будуть упорядковуватися елементи, що досягається зміною знака значень, що повертаються з функції, на протилежні; може змінити поля, по яких виконується сортування.

У бібліотеці існує також функція пошуку змінних структурного типу в масиві цих змінних.

4.3 Контрольні питання

1. Що таке дані типу структура і які типи даних вони містять?

2. Як описуються дані типу структура?

3. Які існують засоби ініціалізації полів структури?

4. Що таке “вкладеність“ структур?


3432040487188755.html
3432144876424372.html
    PR.RU™