Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






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

(0) -> П Е Т Р О В \0  
(1) -> І В А Н О В \0  
(2) -> К У Ц И Й \0    
(3) -> В А Р І Ч \0    
(4) -> Ю Ш К О \0      
(5) -> П Л Ю Щ \0      

Приведемо програму реалізуючу виведення подібної інформації з використанням масиву покажчиків.

// 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 При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.