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


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


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


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


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


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


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


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


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


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



Контакти
 


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






Основні теоретичні відомості

Покажчик - деяке символьне завдання адреси.

В мові С є змінні типа покажчик. Значенням змінної типу покажчик буде адреса деякої величини.

Враховуючи, що для деяких операцій, пов’язаних з покажчиками, потрібно знати об’єм відведеної пам’яті, опис покажчиків має вигляд:

описувач_типу * ім’я-покажчика;

 

Наприклад:

int*pi; /* покажчик на змінну цілого типу */

char *pc; /* покажчик на змінну символьного типу */

З покажчиком використовують два оператори: „*” та „&”. Оператор „&” – унарний. Він повертає адресу пам’яті, де розташований його операнд.

Унарний оператор * дозволяє звернутись до значення змінної, що розташована за адресою, що задана його операндом.

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

Працюючи з покажчиком, постійно використовують операцію & – отримання адреси об’єкту. Для неї існують природні обмеження:

– неможливо визначити адресу непоіменованої константи, тобто не приймаються вирази &3.141593;

– неможливо визначити адресу значення, яке отримане при розрахунку скалярних виразів;

– неможливо визначити адресу змінної, що відноситься до класу пам’яті register;

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

Основні типи як завжди визначаються ключовими словами int, float, char, unsigned.

Операції над покажчиками можна сгрупувати наступним чином:

– операції розіменування чи доступу за адресою (*);

– перетворення типів (приведення типів);

– присвоєння;

– отримання (взяття) адреси (&);

– адитивні операції (додавання та віднімання константи);

– інкремент (++) та дикремент (--);

– операції відношення (операції порівняння);

Якщо операція & завжди дає однаковий результат – адрес розміщення в пам’яті, то операція розіменування *покажчик залежить не тільки від адреси, але й від типу. Річ в тому, що при доступі до пам’яті за допомогою розіменування покажчика потрібною буде інформація не тільки про розміщення, але й про розміри ділянки пам’яті, що буде використовуватися. Цю додаткову інформацію компілятор отримує з типу покажчика.

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

Наприклад. Після виконання p1=p1+9 p1 буде посилатися на дев’ятий елемент базового типу покажчика р1 відносно поточного елемента, на який посилається p1.

Додавати покажчики не можна. Але якщо відняти один покажчик з другого (які вказують на один базовий тип) то різниця вкаже на кількість елементів базового типу, що розподіляють ці два покажчика.




Переглядів: 461

<== попередня сторінка | наступна сторінка ==>
Приклад програми по обробці матриць | Представлення масиву у пам’яті

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


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