R Справочное руководство по С++

R.8.2.1 Указатели.

   


Назад  |  Вперёд

В описании T D, в котором D имеет вид

           * список-спецификаций-cv opt D1

тип описываемого идентификатора есть "... список-спецификаций-cv указатель на T". Конструкция список-спецификаций-cv относится к указателю, а не к указуемому объекту.

Например, в описаниях

           const ci = 10, *pc = &ci, *const cpc = pc;
           int i *p, *const cp = &i;

определяются: ci как константа целое; pc как указатель на константу целое; cpc как константа указатель на константу целое; i как целое; p как указатель на целое; и cp как константа указатель на целое. После инициализации значения ci, cpc и cp не могут быть изменены. Значение pc можно изменять так же, как и значение объекта, на который указывает cp. Приведем примеры допустимых операций:

           i = ci;
           *cp = ci;
           pc++;
           pc = cpc;
           pc = p;

Недопустимы следующие операции:

           ci = 1;    // ошибка
           ci++;      // ошибка
           *pc = 2;   // ошибка
           cp = &ci;  // ошибка
           cpc++;     // ошибка
           p = pc;    // ошибка

Каждая из этих операций недопустима или потому, что она изменяет значение объекта, описанного со спецификацией const, или потому, что делает такое изменение возможным позднее с помощью указателя, настроенного на объект без спецификации const.

Аналогична ситуация со спецификацией volatile.

Обратитесь к $$R.5.17 и $$R.8.4.

Нельзя описывать указатели на ссылки ($$R.8.2.2) или указатели на битовые поля ($$R.9.6).


Назад  |  Вперёд


OtDiatlovaOU
К началу книги

Оформление и дизайн книги OtDiatlovaOU.
Вся книга, архив.