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

81.Адресна арифметика

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

82.Інкрементування вказівників

Інкрементування вказівників. Інкрементувати вказівник – це значить збільшити його значення. Якщо значення вказівника інкрементувати на одиницю, то адресна арифметика автоматично адресу, яку він зберігає, так, щоб він вказував на наступний елемент масиву. Іншими словами, компілятор знає тип вказівника (з його опису) і збільшує збережувану в ньому адресу на довжину елемента даних.

83.Декрементування вказівників

Декрементування вказівників. Все що було сказано по відношенню до операції інкрементування вказівників відноситься і до операції декрементування вказівників, тільки в цьому випадку величина вказівника зменшується.

84.Звернення до елементів масиву через вказівники

85.Індексний запис і вказівники

Ім’я масиву без квадратних дужок – це вказівник на перший елемент масиву. Тому до першого елементу можна звертатися з допомогою операції посилання по вказівнику. Нехай описаний масив array[]. Тоді вираз *array дасть його перший елемент, *(array +1) - другий і т. д. . Тоді можна записати такі співвідношення.

*(array)== array[0]

*(array +1) == array[1]

*(array +2) == array[2]

………………………………

*(array +n) == array[n]

Це зв’язок між зверненням до масиву по індексу і через операції з вказівниками.

Не можна використовувати не заданого (не ініціалізованого) вказівника в лівій частині оператора присвоєння.

86.Операції порівняння вказівників

Вказівники можна також порівнювати. Порівняння має сенс тільки для вказівників на один і той масив. При цьому виконуються операції порівняння = =, !=, <, >, >+, <+.

Молодші елементи масиву, тобто елементи з меншими індексами мають і менші адреси. Якщо ptr1 i ptr2 вказують на елементи одного і того масиву, то співвідношення ptr1 < ptr2 істинне, коли ptr1 вказує на елемент з меншим індексом, ніж ptr2

Операції множення і ділення над вказівниками не виконуються.

87.Обчислення зміщення вказівників

Зміщення – це фактичне віднімання двох вказівників, Якщо є два вказівники на різні елементи одного масиву, то їх можна відняти один від одного і вияснити , на якій відстані вони знаходяться Адресна арифметика забезпечує автоматичне масштабування результату, і в підсумку відстань виражається в кількості елементів. Якщо ptr1 i ptr2 вказують на елементи одного і того масиву, то вираз ptr1-ptr2 дає відстань між цими елементами.

88.Операція для визначення кількості байтів змінної даного типу

Це ключове слово sizeof, яке означає одномісну операцію і визначає кількість байт для змінної даного типу.

sizeof(int) =4

sizeof(short) =2

sizeof(float) =4

sizeof(char) =1

sizeof(double) =8