Студопедия

КАТЕГОРИИ:

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



В языке Си указатели — это переменные, которые предназначены для хранения адресов объектов программы.




Читайте также:
  1. B) которые могут быть в пределах одной и той же личности;
  2. D. НЕКОТОРЫЕ ЗНАНИЯ О ПСИХОЛОГИИ
  3. I. Некоторые данные и предположения о сигнальном воздействии палеоантропов на диких животных
  4. II. Некоторые механизмы нейросигнального взаимодействия между особями и популяциями палеоантропов
  5. II. Фразы, которые рекомендуется использовать в пересказе текста
  6. Ill Задание З. Прочитайте отрывок из научно-технического текста и найдите в нем термины, имеющие лексические эквиваленты в русском языке.
  7. Rule # 1Чтобы задать вопрос в английском языке вспомогательный глагол нужно поставить на первое место
  8. А вот еще некотроые слова ученых которые ясно свидетельствуют о том что нет оправданиия ширку невежеством
  9. А как же нужды, удовлетворить которые нам не удается ввиду ограниченности ресурсов?
  10. АНГЕЛЫ, КОТОРЫЕ СОТВОРИЛИ МИР

Как все остальные переменные, указатели должны быть обязательно определены, т.е. им должны быть приписаны необходимые атрибуты.

Указатели могут быть определены или объявлены на внешнем (глобальном)или внутреннем (локальном) уровнях и иметь любой из классов памяти. Важнейшую роль в описании указателя играет тип данных.

Так как все указатели — это переменные, способные хранить всего навсего адрес только одного байта (первого из байтов, занимаемых объектом), то можно было бы предположить, что все указатели имеют один и тот же тип.

Однако для выполнения разадресации компилятор должен знать тип объекта, на который ссылается указатель. Тип данных определяет размер объекта данных, способ представления (т.е. записи) данных в "ячейке"и набор допустимых операций с объектом. Зная только начальный адрес объекта и не зная его типа, компилятор не сможет правильно организовать обработку объекта.

Поэтому все указатели принадлежат к одному из типов, название которых образуется словосочетанием "указатель на <тип_данных>".

Здесь <тип_данных> — это любой базовый или производный тип. Например, определение int *px; вводит в программу объект px, имеющий тип "указатель на int".

Так как тип, на который ссылается указатель, играет роль только на стадии компиляции (compile-time) при интерпретации указателя, то он никак не связан со способом размещения в памяти адресов объектов. Т.е. тип указываемых данных запоминается компилятором отдельно. Он является внешним по отношению к значению адреса свойством. Поэтому все указатели имеют один и тот же размер.

Реальный размер указателя в байтах зависит от используемого для хранения объектов адресного пространства. В 16-разрядных приложениях для операционной системы MS-DOS размер адресного пространства для хранения данных и кода определяется специальным параметром компилятора — моделью памяти.

Модель памяти устанавливается в пункте меню

Options | Compiler | Code Generation...

Например, в модели памяти Small для данных используются двухбайтовые адреса, а в модели Large — четырехбайтовые.

Замечание

После изменения используемой модели памяти для получения эффекта, программу надо заново откомпилировать.



ЗАДАНИЕ 2

Составить программу, которая позволяет вычислить и вывести на экран размеры типов и размеры указателей на объекты (строка на каждый тип). Операции выполнить для шести базовых типов


Дата добавления: 2015-09-15; просмотров: 8; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2020 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты