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

Індексування

Читайте также:
  1. Варіанти задач
  2. Доступ до інформації: поняття, правове регулювання
  3. І НАВЧАЛЬНОЇ ДИСЦИПЛІНИ
  4. Індексно-послідовна організація файлів
  5. Найбільш популярні системи і технологія пошуку інформації за ключовим словом в Internet.
  6. Нормативні посилання
  7. ПИТАННЯ ДО ЗАЛІКУ
  8. ПИТАННЯ ДО ІСПИТУ
  9. Приклади програм
  10. Протокол TCP/IP
  11. Світова електронна мережа правових документів Global Legal Information Network (GLIN)

Операція індексування вказівника забезпечує доступ до об’єкта, який змі­щений у пам’яті на величину, що визначається значенням індексу. При цьому зсув у байтах дорівнює добутку значення індексу і розміру базового типу. Таким чином, якщо i – деяке значення цілого типу, а P – вказівник з деяким базовим типом, то має місце співвідношення P[i] == *(P + i).

Звичайним образом над вказівниками виконуються всі операції порів­няння. При цьому порівнювати можна тільки вказівники з тим самим базовим типом.

Операції new і delete розглядатимуться окремо.

За винятком операції присвоювання і операцій порівняння, ніякі дії над вказівниками з базовим типом void не визначені.

Константи і вказівники

Вказівник може бути оголошеним константою. У цьому разі після ініціа­лізації він завжди буде посилатися на ту саму ділянку пам’яті і змінити це поси­лання виявляється неможливим. Формат оголошення константного вказівника (вказівника-константи) такий:

тип * const ім’я_вказівника ініціалізатор;

Наприклад:

double e = 2.72;
double pi = 3.14;
double * const Pt_const = π

Надалі в програмі можливе будь-яке змінення змінної pi, але змінити зна­чення змінної Pt_const не вдасться. Так, якщо за допомогою оператора

pi = 3.1415;

здійснити задавання для змінної pi більш точного значення, то значенням виразу *Pt_const також буде число 3.1415. У той же час оператор

*Pt_const = &e;

діагностуватиметься компілятором як помилковий.

Вказівник може посилатися на константу:

тип const *ім’я_вказівника ініціалізатор;

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

Так, синтаксично правильними є такі оператори:

const int ZERO=0, ONE=1;
const int *p_to_const = &ZERO;
p_to_const = &ONE;
p_to_const = NULL;

Тут вказівник по черзі посилається на різні константи.

Однак оператор

*p_to_const = 7;

є синтаксично помилковим – він здійснює спробу змінити значення кон­станти.

Можливе також використання константних вказівників на константу:

тип const * const ім’я_вказівника ініціалізатор;

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

Звичайний вказівник може отримати адресу іменованої константи, але при цьому необхідно приведення типів:

const int ZERO=0;
int * p_to_const = (int *) &ZERO;


1 | 2 | 3 | 4 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)