Описание указателей

Описание указателей

     Мы знаем, как описывать переменные типа int и других типов. Но как описать переменную типа "указатель"? На первый взгляд это можно сделать так:

pointer ptr;       /* неправильный способ описания указателя */

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

int *pi;             /* указатель на переменную типа целого */

char *рс;              /* указатель на символьную переменную */

float *pf, *pg;        /* указатели на переменные с плавающей точкой */

Спецификация типа задает тип переменной, на которую ссылается указатель, а символ звездочка (*) определяет саму переменную как указатель. Описание вида int *pi; говорит, что pi - это указатель и что *pi - величина типа int.

  

РИС. 9.5. Описание и использование указателей.

Точно так же величина (*рс), на которую ссылается переменна рс, имеет тип char. Что можно сказать о самой переменной рс? Мы считаем, что она имеет тип "указатель на переменную типа char". Ее величина, являющаяся адресом,- это целое число без знака, поэтому при выводе на печать значения переменной рс мы будем пользоваться форматом %u.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Разрешение системных указателей

Из книги автора

Разрешение системных указателей Системный указатель считается разрешенным, если содержит прямой адрес системного объекта. Указатель, содержащий символический адрес, называется неразрешенным. Символический адрес используется для поиска объекта в библиотеке и состоит


Другие типы указателей

Из книги автора

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


Аппаратная защита указателей

Из книги автора

Аппаратная защита указателей Мы понимали, что необходима некоторая форма аппаратной защиты памяти для указателей. Многие из больших систем того времени, такие как System/370, использовали для защиты памяти специальные аппаратные разряды, разрешавшие или запрещавшие


Выбор указателей мыши

Из книги автора

Выбор указателей мыши Еще одной отличительной особенностью интерфейса Windows Vista стал набор изящных видов указателей мыши. Как и в предыдущих версиях Windows, у вас сохранилась возможность изменять вид указателя при различных состояниях. В окне Персонализация щелкните


7.7. Изменение указателей мыши

Из книги автора

7.7. Изменение указателей мыши Возможность настройки указателей мыши существовала и в самых ранних версиях операционной системы Windows, поэтому разработчики Windows 7 решили не изобретать велосипед и использовать уже отлаженный механизм. При этом они взяли его в том виде, в


Основы указателей

Из книги автора

Основы указателей СОМ, подобно DCE (Distributed Computing Environment – среда распределенных вычислений), ведет свое начало от языка программирования С. Хотя лишь немногие разработчики используют С для создания или использования компонентов СОМ, именно от С СОМ унаследовала синтаксис


Проблема обобщенных указателей

Из книги автора

Проблема обобщенных указателей Что такое обобщенные указатели и почему они полезны Представим себе некий объект, который имеет перегруженную операцию operator->(). Мы можем его представить себе как некий обобщенный указатель, который не является указателем в полном смысле


Выбор указателей мыши

Из книги автора

Выбор указателей мыши Указатели мыши в Vista выглядят изящно, но не совсем привычно. Если хотите, можете поменять и их. Для этого щелкните кнопкой мыши на ссылке Указатели мыши в окне Персонализация. В открывшемся окне вы увидите примеры указателей для выбранной схемы (рис.


R.4.6 Преобразования указателей

Из книги автора

R.4.6 Преобразования указателей Всюду, где указатели (§R.8.2.1) присваиваются, инициализируются, сравниваются или используются иным образом, могут происходить следующие преобразования:Константное выражение (§R.5.19), которое сводится к нулю, преобразуется в указатель, обычно


6.4. Хранение указателей в векторе

Из книги автора

6.4. Хранение указателей в векторе ПроблемаС целью повышения эффективности или по другим причинам невозможно хранить копии объектов в vector, но их требуется как-то разместить.РешениеСохраните в vector указатели на объекты, а не копии самих объектов. Но при этом не забудьте


Совет 7. При использовании контейнеров указателей, для которых вызывался оператор new, не забудьте вызвать delete для указателей перед уничтожением контейнера

Из книги автора

Совет 7. При использовании контейнеров указателей, для которых вызывался оператор new, не забудьте вызвать delete для указателей перед уничтожением контейнера Контейнеры STL отличаются умом и сообразительностью. Они поддерживают итераторы для перебора как в прямом, так и в


Описание работы пакета OOoFBTools I Конвертер ExportToFB21 1. Описание

Из книги автора

Описание работы пакета OOoFBTools I Конвертер ExportToFB21 1. Описание 1.1. НазначениеКроссплатформенный конвертер ExportToFB21 предназначен для конвертации документов из форматов, поддерживаемых OpenOffice.org Writer в формат fb2.1.Т.о. входные форматы документов для ExportToFB21 следующие:.doc, dot, rtf, txt,


7.9.4. Массивы указателей на функции

Из книги автора

7.9.4. Массивы указателей на функции Можно объявить массив указателей на функции. Например:int (*testCases[10])();testCases – это массив из десяти элементов, каждый из которых является указателем на функцию, возвращающую значение типа int и не имеющую параметров.Подобные объявления


6.7 Преобразования Указателей

Из книги автора

6.7 Преобразования Указателей Везде, где указатели присваиваются, инициализируются, сравниваются и т.д. могут выполняться следующие преобразовния.Константа 0 может преобразовываться в указатель, и грантируется, что это значение породит указатель, отлиный от указателя на


Типы указателей

Из книги автора

Типы указателей PBoolean Тип указателя на boolean PByte Тип указателя на byte PShortint Тип указателя на shortint PChar Тип указателя на char PSmallint Тип указателя на smallint PWord Тип указателя на word PPointer Тип указателя на pointer PInteger Тип указателя на


Настройка указателей мыши

Из книги автора

Настройка указателей мыши Для изменения формы указателей мыши щелкните кнопкой мыши в окне Персонализация на ссылке Указатели мыши. При этом откроется вкладка Указатели диалогового окна Свойства: Мышь (рис. 2.25). Рис. 2.25. Окно настройки указателей мышиВы можете выбрать