Студопедия — 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; просмотров: 300. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

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

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

В эволюции растений и животных. Цель: выявить ароморфозы и идиоадаптации у растений Цель: выявить ароморфозы и идиоадаптации у растений. Оборудование: гербарные растения, чучела хордовых (рыб, земноводных, птиц, пресмыкающихся, млекопитающих), коллекции насекомых, влажные препараты паразитических червей, мох, хвощ, папоротник...

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

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

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

Задержки и неисправности пистолета Макарова 1.Что может произойти при стрельбе из пистолета, если загрязнятся пазы на рамке...

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