МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Main ( ){ int stc, mas [6], i, j; int *pmas; pmas = mas; cout << "Введіть 6 елементів масиву" << endl; for ( i = 0; i < 6; i++) cin >>*pmas++; // Наступний оператор знову встановлює покажчик на початок масиву // (інакше він буде вказувати на наступну за масивом адресу) pmas = mas; for ( i =1; i < 6; i++) { stc = *(pmas + i); j = i - 1; while ( j >= 0 && stc > *(pmas+j)) { *(pmas+j+1) = *(pmas+j); j - - ; } *(pmas+j+1) = stc; } cout << "Результат" << endl; for ( i = 0; i < 6; i++) cout << i << " елемент " << *(pmas + i ) << endl; //Можна використовувати і таку конструкцію оператора // cout << i << " елемент " << * pmas++ << endl; getch ( ); //Для затримки екрана виведення результату return 0; } Масиви покажчиків Як і інші змінні, покажчики можна групувати в масиви, кожен елемент якого містить адресу рядка масиву даних у пам'яті. У такий спосіб можна зберігати дані з "рваними" краями. Цей масив схожий на двовимірну таблицю з одним виключенням: усі рядки в такому масиві можуть мати різну довжину. При збереженні рядків це дозволяє заощаджувати пам'ять, а при виконанні сортування рядків, вона виконується значно швидше, тому що змінююється тільки покажчики, а не значення рядків. Fio
Приведемо програму реалізуючу виведення подібної інформації з використанням масиву покажчиків. // P2_11.CPP #include < iostream> using namespace std; Main ( ) { char *fio [ ] = { "Петров", "Іванов" , "Куций", "Варич", "Юшко", "Плющ " }; int str; for ( str = 0; str <= 5; str++) cout << " stroka " <<( str +1 ) << ” = ” << *( fio+str ) << endl; return 0; } Особливістю масиву покажчиків є те, що кожен з цих покажчиків елементів масиву може вказувати на масив довільної довжини. Так двовимірний масив чисел можна записати як матрицю, і як одновимірний масив покажчиків, наприклад:int matr[5][7];чиint *pmt [5]; . При цьому двовимірний масив розглядається як одновимірний масив рядків, кожен елемент якого — це теж масив стовпців, тобто масив масивів, тому індексування елементів матриці записується у вигляді mas [i][j]. Якщо двовимірний масив описаний за допомогою масиву покажчиків, то доступ до mas [i][j] елемента може здійснюватися одним зі способів:
* ( pm[i]+j ) або *( *( pm+i )+j ) . Приклад 2.6 До елементів матриці, що мають парні значення, додати число і вивести отриману матрицю в природному вигляді. Перший варіант програмної реалізації —матриця описується явним способом і робота ведеться з її елементами.
// P2_12.CPP — робота ведеться без покажчиків. #include < iostream> using namespace std; Переглядів: 251 |
Не знайшли потрібну інформацію? Скористайтесь пошуком google: |
© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове. |
|