Студопедия — Int main ()
Студопедия Главная Случайная страница Обратная связь

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

Int main ()






,<;

Отпечатано в полном соответствии с качеством предоставленных диапозитивов

в ОАО ордена «Знак Почета»

«Смоленская областная типография им. В. И. Смирнова». 214000, г. Смоленск, проспект им. Ю. Гагарина, 2.

Издательство «Психотерапия»

129337, Москва, а/я 70

http://www.optbook.narod.ru

Лекция 13

УКАЗАТЕЛИ

Цель лекции. Уяснить понятия указателя и адресации памяти.

Изучить особенности использования указателей в языке С++.

Основные вопросы лекции.

1. Понятие указателя.

2. Разыменование указателей.

3. Операции с указателями.

4. Указатели и массивы

 

Понятие указателя.

Переменная базового типа или производного типа занимает в памяти определенную область (количество ячеек). Расположение переменной в памяти определяется адресом. При объявлении переменной для нее резервируется место в памяти. Размер зарезервированной памяти зависит от типа данной переменной.

 

Для доступа к содержимому выделенной памяти служит его имя (идентификатор). Для того чтобы узнать адрес конкретной переменной, служит операция взятия адреса. Синтаксис операции:

 

&ИмяПеременной

 

То есть перед именем переменной ставится знак &;.

Рассмотрим пример использования указателя.

 

 

int main ()

{

int Var1=4000;

int Var2=300;

cout<<”Znachenie Var1= “<Var1<<endl;

cout<<”Adres Var1= “<&Var1<<endl;

cout<<”Znachenie Var2= “<Var2<<endl;

cout<<”Adres Var2= “<&Var2<<endl;

}

 

После запуска программы на экране появится следующая информация:

Znachenie Var1= 4000

Adres Var1= 0x0012FF7C

Znachenie Var2= 300

Adres Var2= 0x0012FF78

 

Адреса переменных записаны в шестнадцатиричной системе счисления. Признаком 16-ричного числа являются символы .

Представление чисел в разных системах исчисления приведено в следующей таблице.

 

Десятичное число 8–ричное число 16–ричное число Двоичное число
       
       
       
       
       
       
       
       
       
       
    А  
    B  
    С  
    D  
    E  
    F  

 

В языке С++ принято следующее распределение памяти:

 

Стек
Свободная память
Раздел глобальных переменных и констант
Программа

Младшие

адреса

 

 

Адреса локальных переменных размещаются в стеке. Поэтому их адреса следуют в обратном порядке (стек растет в направлении младших адресов). Разница в адресах Var1 и Var2 всегда будет одинаковая и при 4-х байтовом представлении чисел типа int составит 4 байта.

 

В языке С++ есть возможность осуществлять непосредственный доступ к памяти. Для этого предусмотрен специальный тип переменных – указатели.

 

Указатель – это переменная, содержащая адрес некоторого объекта. Объектом может быть: переменная базового или производного типа или функция. В общем случае – это просто целое число!

 

Переменная Указатель на переменную

  Значение переменной . . Адрес + 1  

Адрес Адрес + 1 Адрес + 2 Адрес + 3 Адрес + 4 Адрес + 5

 

Если переменная будет указателем, то она должна быть объявлена в программе. Указатель в программе объявляется следующим образом:

ТипОбъекта *Идентификатор;

 

Здесь “ ТипОбъекта ” определяет тип данных, на которые ссылается указатель с именем “ Идентификатор ”. Символ * (звездочка) означает, что следующая за ней переменная является указателем. При объявлении указателя под него резервируется 4 байта.

Примеры объявления указателей:

Char *ch;

int *temp, i, *z;

float f,*ptr;

 

Здесь объявлены указатели ch, temp, z, ptr и переменные i и f.

 

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

 

Рассмотрим пример объявления и инициализации указателя.

#include <iostream.h>;







Дата добавления: 2015-06-12; просмотров: 301. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Приготовление дезинфицирующего рабочего раствора хлорамина Задача: рассчитать необходимое количество порошка хлорамина для приготовления 5-ти литров 3% раствора...

Дезинфекция предметов ухода, инструментов однократного и многократного использования   Дезинфекция изделий медицинского назначения проводится с целью уничтожения патогенных и условно-патогенных микроорганизмов - вирусов (в т...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия