1-1 Программирование С++ / html / modules / 016 / content / content3
.htmlІнформатика — Теорія — Масиви покажчиків Автори
|
Контакти
|
Підсистема допомоги
|
Методичні вказівки
|
Анотація
|
Назад
ІнформатикаМасиви та покажчики : Масиви покажчиківЗміст курсу
Вступ
Теорія
Оголошення та звертання в одновимірних масивах
Оголошення та звертання до багатовимірних масивів
Масиви покажчиків
Практика
Практичне заняття 1
Практичне заняття 2
Поточна перевірка знань
Масиви і покажчики
Версія для друку
Масиви покажчиків Як і інші змінні, покажчики можна групувати в масиви, кожен елемент якого містить адресу рядка масиву даних у пам'яті. У такий спосіб можна зберігати дані з "рваними" краями. Цей масив схожий на двовимірну таблицю з одним виключенням: усі рядки в такому масиві можуть мати різну довжину. При збереженні рядків це дозволяє заощаджувати пам'ять, а при виконанні сортування рядків, вона виконується значно швидше, тому що змінюються тільки покажчики, а не вміст рядків.
Таблиця 1 - Масив рядків(прізвищ)
(0)
->
П
Е
Т
Р
О
В
\0
(1)
->
І
В
А
Н
О
В
\0
(2)
->
К
У
Ц
И
Й
\0
(3)
->
В
А
Р
И
Ч
\0
(4)
->
Ю
Ш
К
О
\0
(5)
->
П
Л
Ю
Щ
\0
Прмклад 1. Наведемо програму, що реалізує виведення подібної інформації з використанням масиву покажчиків.
#include <iostream.h>
void 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 ) .
© 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS