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



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

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

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

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

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

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