Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_OTAM_sem1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
948.74 Кб
Скачать

Лабораторна робота 4.«Одновимірні масиви.Покажчики. Рядки»(4 год.)

Ціль роботи:Формування уміння описувати, ініціалізувати масиви, роздруковувати вміст масиву, виконувати прості операції над масивами. Одержання навичок використання покажчиків для звертання до масиву і його елементів.Освоєння прийомів роботи із символами й рядками, застосування бібліотечних функційдля обробки рядків.

Теоретичні відомості Масиви й покажчики

Зі змінних будь-якого типу можна утворювати масиви. При оголошенні масиву вказується тип даних, ідентифікатор (ім'я) масиву й число елементів масиву у квадратних дужках:

double mas[10] ; // Масив з п'яти елементів типу double

Індекси елементів масиву починаються з 0, індекс останнього елемента на одиницю менше числа елементів у масиві. Масив можна ініціалізувати списком значень у фігурних дужках:

int b[4] = {1, 2, 3, 4};

Для звертання до елемента масиву вказується ідентифікатор масиву й індекс елемента в квадратних дужках, наприклад, b[2], mas[5].

Змінна, значенням якої є адреса іншої змінної, називається покажчиком. При оголошенні покажчика перед ідентифікатором записується знак *:

int a, *pa;

– оголошення цілої змінної а й покажчика ра на цілочисельну змінну. Щоб покажчик зв'язати з певною змінною, потрібно покажчику присвоїти адресу цієї змінної:

pa = &a;

У С/С++ ім'я масиву є також покажчиком на масив, що посилається на перший елемент масиву (елемент із індексом 0). Таким чином, адресу першого елемента масиву можна одержати як pa або &a[0]. Значення першого елемента масиву повертається операцією розімену­вання:

int w = *pa;

– зміннійw присвоїли значення змінної, розміщеної за адресою pa, тобто a[0].

Записи «покажчик-зсув» і «покажчик-індекс»

Покажчик масиву посилається на перший елемент. Зміщуючи покажчик, можна звернутися до наступних елементів масиву, наприклад,

W = *(pa+2);

– змінній w присвоюється значення 3-го елемента масиву. Наведений запис – це запис "покажчик-зсув". Дужки обов’язкові, оскільки пріоритет операції * вище, ніж пріоритет +. Адреса елемента a[2], тобто &a[2], може бути записана як pa+2.

Усі елементи масиву можна записати за допомогою покажчиків і зсувів, а запис "покажчик-зсув" можна застосовувати до імені масиву як до покажчика, наприклад.

w = *(a+1)

– змінній w присвоєне значення 2-го елемента a[1].

Покажчики можна проіндексувати точно так само, як і масив. Наприклад, виразpa[1]посилається на елемент масиву a[1]. Даний вираз називається записом "покажчик-індекс".

Наведемо приклад виведення елементів масиву з використанням запису «покажчик-зсув»

int v[3]={1,3,5};

int*p1=v;

for(int i=0;i<3;i++)

cout<<*(p1+i)<<"\t";

Для виведення елементів із використанням запису «покажчик-індекс» в операції cout потрібно записати:

cout <<p1[i]<<"\t";

Рядки як одновимірні масиви

У мові С рядок подається як одновимірний масив змінних типу char, останнім елементом якого автоматично є нульовий символ '\0'. Можливі кілька видів оголошень масиву символів. По-перше, це може бути абстрактний рядок без вказівки розміру масиву:

charname[] = "Andrey";

Тут число елементів масиву визначається автоматично й дорівнює 7 (з урахуванням останнього елемента '\0'). По-друге, масив символів може мати більше елементів, чим містить абстрактний рядок:

char name[10] = "Andrey";

Тут три останніх елементи масиву не використовуються. Нарешті, рядок може бути оголошений за допомогою покажчика. Перед використанням покажчика рядок вже повинен існувати, наприклад:

char name[] = "Andrey";

char *namePtr;

namePtr = name;

Відзначимо, що при присвоєнні покажчику адреси масиву не потрібно використати адресний оператор &, тому що ім'я масиву поводить себе подібно адреси.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]