Стефан Дэвис - С++ для чайников .

Здесь есть возможность читать онлайн «Стефан Дэвис - С++ для чайников .» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: Издательский дом Вильямс. Компьютерное издательство Диалектика, Жанр: Технические науки, Программирование, Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

С++ для чайников .: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «С++ для чайников .»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

empty-line
1
empty-line
4

С++ для чайников . — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «С++ для чайников .», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

cout << "--- = " << &end << " \n" ;

cout << " &n = " << &n <<" \n" ;

cout << " &l = " << &l <<" \n" ;

cout << " &f = " << &f <<" \n" ;

cout << " &d = " << &d <<" \n" ;

/* Пауза для того, чтобы посмотреть на результат работы программы */

system( "PAUSE" ) ; return 0 ;

}

Программа объявляет ряд переменных, к которым затем применяется оператор &для того, чтобы получить их местоположение в памяти. Вот как выглядит результат выполнения этой программы, скомпилированной Dev-C++.

0x28ff34 n 0x28ff30 l 0x28ff2c f 0x28ff28 d - фото 125

--- = 0x28ff34

&n = 0x28ff30

&l = 0x28ff2c

&f = 0x28ff28

&d = 0x28ff20

Press any key to continue...

_________________

107 стр. Глава 8. Первое знакомство с указателями в С++

Результат выполнения программы на вашем компьютере может отличаться от - фото 126

«Результат выполнения программы на вашем компьютере может отличаться от приведённого. Абсолютные адреса переменных зависят от массы различных факторов. Вообще говоря, результаты могут отличаться при различных запусках одной и той же программы.»

[ Советы ]

Обратите внимание на то, что переменная n располагается ровно в 4 байтах от первой объявленной переменной end . Переменная l располагается ещё на 4 байта ниже, а переменная типа double занимает 8 байт. Для каждой переменной выделяется память, необходимая для её типа.

Стандарт С не требует от компилятора последовательного беспросветного - фото 127

«Стандарт С++ не требует от компилятора последовательного "беспросветного" размещения переменных в памяти. Dev-C++ может разместить переменные в памяти и по-другому.»

[ Атас! ]

►Использование указателей...108

Переменная-указатель содержит адрес, обычно это адрес другой переменной. Используя аналогию с отелем: я могу сказать сыну, что во время путешествия я буду в комнате 0x100. Мой сын выполняет роль указателя — его можно спросить, в какой комнате отеля я нахожусь, и он даст точный ответ.

Вот псевдокод, описывающий данную ситуацию:

mySon = & DadsRoom ; /* Теперь сын знает комнату отца */

room = *mySon ; /* "Номер комнаты равен" */

Пример работы с операторами на С++ привёден в следующем листинге:

void fn( )

{

int intVar ;

int* pintVar ;

pintVar = & intVar ; /* Теперь pintVar указывает на intVar */

*pintVar =10 ; /* Сохраняет 10 в переменной типа int по адресу, находящемуся в pintVar */

}

Функция fn( ) начинается с объявления переменной intVar ; в следующей строке объявляется pintVar — указатель на переменную типа int .

Указатели объявляются как обычные переменные, но в объявление добавляется унарный оператор * , который может быть использован совместно с именем любого типа. В данной строке этот символ используется вместе с именем фундаментального типа int . Однако этот оператор может использоваться для добавления к любому имени переменной типа.

При написании программ желательно придерживаться соглашений об именах, в соответствии с которыми первый символ в названии переменной указывает на её тип. Например, можно использовать n для int , d для double и т.д. С учётом этого соглашения имена указателей далее в книге будут начинаться с буквы р .

Унарный оператор &в выражении означает "взять адрес переменной". Таким образом, в первой строке приведённого кода находится команда сохранения адреса переменной intVar в переменной pintVar .

Представим себе, что функция fn( ) начинается с адреса 0x100 , переменная intVar расположена по адресу 0x102, а указатель pintVar — 0x106 ( такое расположение намного проще результатов работы программы Layout ; на самом деле вряд ли переменные будут храниться в памяти именно в таком порядке ).

_________________

108 стр. Часть 2. Становимся функциональными программистами

Первая команда программы сохраняет значение & intVar ( 0x102 ) в указателе pintVar . Вторая строка отвечает за присвоение значения 10 переменной, хранящейся по адресу, который содержится в указателе pintVar ( в нём находится число 0x102, т.е. адрес переменной intVar ).

Сравнение указателей и почтовых адресов...109

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «С++ для чайников .»

Представляем Вашему вниманию похожие книги на «С++ для чайников .» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «С++ для чайников .»

Обсуждение, отзывы о книге «С++ для чайников .» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x