Дороговкази в мові програмування з

Отже, введемо позначення:

* Ptr - означає "розіменування покажчика ptr"

покажчик на змінну, що зберігає int-число.

Для початку визначимо, що таке покажчик.

int var1, var2, z; / * Цілочисельні змінні * /

int * pointer; / * Покажчик на целочисленную змінну * /

Ми будемо зображати покажчик у вигляді СТРІЛКИ; це хороший прийом і при практичному програмуванні.

Дороговкази в мові програмування з

Таким чином, УКАЗАТЕЛЬ - це "стрілка, що вказує на якийсь ящик-змінну". Початок цієї стрілки можна (в свою чергу) зберігати в який-небудь змінної. При цьому, якщо стрілка вказує на змінну типу int, то тип змінної, що зберігає початок стрілки, є int * Якщо типу char, то тип - char *

Чи законно x стрілка на ящик "x" arr [3] стрілка на ящик "arr [3]" Незаконно - (2 + 2) тут немає іменованого "ящика", на який вказує стрілка, та й взагалі ящика немає.

Тип [Модифікатор] * ім'я-покажчика;

ім'я-покажчика - ідентифікатор змінної типу покажчик;

* - визначає змінну типу покажчик.

Модифікатор не обов'язковий і може приймати значення (near. Far. Huge) призначений для визначення обсягу пам'яті відводиться під покажчик.

Розглянемо ще один приклад використання покажчиків.

Наведемо схему зв'язків покажчиків:

Дороговкази в мові програмування з

В результаті виконання програми буде виведено

d = 7776 pd = 65522 * pd = 7776 pd = 65520

c = A pc = 65525 * pc = A pc = 65518

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

При цьому a = 10, u - не змінилося, z = 5.

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

Нехай дано цілочисельний масив, який необхідно інвертувати.

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

У другому прикладі приріст покажчика d і зменшення покажчика h перенесені в тіло циклу, а також використаний цикл з передумовою. Це можливо тому, що унарні операції ++, -, * мають однаковий пріоритет виконання на відміну від інших арифметичних операцій.

В останньому прикладі відбувається імітація індексних змінних покажчиками зі зміщенням. Тут замість a [i] використовується покажчик на початок масиву зрушений на задане число елементів * (a + i).

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

Результат виконання програми:

6.000 5.000 4.000 3.000 2.000 1.000

1.000 2.000 3.000 4.000 5.000 6.000

Дороговкази в мові програмування з

Дороговкази в мові програмування з

Результат виконання програми.

Схожі статті