Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_TO2.doc
Скачиваний:
15
Добавлен:
19.02.2016
Размер:
2.62 Mб
Скачать

3 Методичні вказівки

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

  2. Використати знання про вказівники, операції над ними.

  3. Для вводу й виводу даних використати бібліотеку функцій <stdіo.h>.

  4. Ввести текст програми. Звернути увагу на типи даних, що будуть використані в програмі.

  5. Запустити програму на компіляцію. У випадку необхідності виправити синтаксичні помилки.

  6. Запустити програму на виконання. У випадку необхідності виправити семантичні помилки.

  7. Реалізувати програму для різних вхідних даних.

4 Контрольні запитання

  1. Який знак операції використовується для одержання адресу змінної?

  2. Який знак операції використовується для одержання значення по адресі?

  3. Що таке посилання по вказівнику?

  4. Що таке вказівник?

  5. Які операції можна виконувати над вказівниками.

Лабораторна робота № 10

Тема: Використання адресної арифметики для роботи з вказівниками

Мета роботи: Навчитись визначати адреси елементів масиву з використанням адресної арифметики.

1 Короткі теоретичні відомості

Вказівники і типи змінних. Змінні різних типів займають різний об’єм пам’яті. Адреси змінної являє собою адресу першого молодшого байта.

Наприклад,

char =12252;

short =90;

float t=1200.

Опис і задання вказівників на ці змінні

char *p_vchar;

short *p_vshor;

float *p_vfloat;

p_vchar=&vchar;

p_vshor=&vshor; /* додаткові оператори */

p_vfloat=&vfloat;

Кожний вказівник рівний адресі першого байта змінної, на яку він вказує. Тому p_vshor=1000, p_vchar=1003, а p_vfloat=1 006.

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

&a[0] = = a

Ім’я масиву є постійним вказівником (адресною константою, яку не можна міняти, тому заборонена операція а++ або а--, якщо а – ім’я масиву), його не можна змінити і воно (ім’я) є фіксованим протягом виконання програми.

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

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

Приклад.

Якщо ptr_short є вказівником на елемент масиву типу short , то оператор

ptr_short ++;

збільшує значення ptr_short на довжину типу short (2 байти) і вказівник буде вказувати на наступний елемент масиву.

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

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