Стенли Липпман - Язык программирования C++. Пятое издание
- Название:Язык программирования C++. Пятое издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2014
- Город:Москва
- ISBN:978-5-8459-1839-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стенли Липпман - Язык программирования C++. Пятое издание краткое содержание
Вы держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под
. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. В соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.
С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать их наилучшие способы применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.
Стенли Б. Липпман Жози Лажойе Барбара Э. Му • Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием
• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования
• Изучите принципы и узнайте почему язык С++11 работает именно так
• Воспользуйтесь множеством перекрестных ссылок, способных помочь вам объединить взаимосвязанные концепции и проникнуть в суть
• Ознакомьтесь с современными методиками обучения и извлеките пользу из упражнений, в которых подчеркиваются ключевые моменты, позволяющие избежать проблем
• Освойте лучшие методики программирования и закрепите на практике изученный материал
Исходный код примеров можно загрузить с веб-страницы книги на сайте издательства по адресу: http://www.williamspublishing.com
Язык программирования C++. Пятое издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Таблица 2.1. Арифметические типы языка С++
| Тип | Значение | Минимальный размер |
|---|---|---|
bool |
Логический тип | Не определен |
char |
Символ | 8 битов |
wchar_t |
Широкий символ | 16 битов |
char16_t |
Символ Unicode | 16 битов |
char32_t |
Символ Unicode | 32 бита |
short |
Короткое целое число | 16 битов |
int |
Целое число | 16 битов |
long |
Длинное целое число | 32 бита |
long long |
Длинное целое число | 64 бита |
float |
Число с плавающей запятой одинарной точности | 6 значащих цифр |
double |
Число с плавающей запятой двойной точности | 10 значащих цифр |
long double |
Число с плавающей запятой повышенной точности | 10 значащих цифр |
Тип boolпредставляет только значения true(истина) и false(ложь).
Существует несколько символьных типов, большинство из которых предназначено для поддержки национальных наборов символов. Базовый символьный тип, char, гарантировано велик, чтобы содержать числовые значения, соответствующие символам базового набора символов машины. Таким образом, тип charимеет тот же размер, что и один байт на данной машине.
Остальные символьные типы, wchar_t, char16_tи char32_t, используются для расширенных наборов символов. Тип wchar_tбудет достаточно большим, чтобы содержать любой символ в наибольшем расширенном наборе символов машины. Типы char16_tи char32_tпредназначены для символов Unicode. (Unicode — это стандарт для представления символов, используемых, по существу, в любом языке.)
Остальные целочисленные типы представляют целочисленные значения разных размеров. Язык С++ гарантирует, что тип intбудет по крайней мере не меньше типа short, а тип long long — не меньше типа long. Тип long longвведен новым стандартом.
Компьютеры хранят данные как последовательность битов, каждый из которых содержит 0 или 1:
00011011011100010110010000111011 ...
Большинство компьютеров оперируют с памятью, разделенной на порции, размер которых в битах кратен степеням числа 2. Наименьшая порция адресуемой памяти называется байтом (byte). Основная единица хранения, обычно в несколько байтов, называется словом (word). В языке С++ байт содержит столько битов, сколько необходимо для содержания символа в базовом наборе символов машины. На большинстве компьютеров байт содержит 8 битов, а слово — 32 или 64 бита, т.е. 4 или 8 байтов.
У большинства компьютеров каждый байт памяти имеет номер, называемый адресом (address). На машине с 8-битовыми байтами и 32-битовыми словами слова в памяти можно было бы представить следующим образом:
| 736424 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 |
| 736425 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
| 736426 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
| 736427 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
Слева представлен адрес байта, а 8 битов его значения — справа.
При помощи адреса можно обратиться к любому из байтов, а также к набору из нескольких байтов, начинающемуся с этого адреса. В этом случае говорят о доступе к байту по адресу 736424 или о байте, хранящемуся по адресу 736426. Чтобы получить представление о значении в области памяти по данному адресу, следует знать тип хранимого в ней значения. Именно тип определяет количество используемых битов и то, как эти биты интерпретировать.
Если известно, что объект в области по адресу 736424 имеет тип float, и если тип floatна этой машине хранится в 32 битах, то известно и то, что объект по этому адресу охватывает все слово. Значение этого числа зависит от того, как именно машина хранит числа с плавающей запятой. Но если объект в области по адресу 736424 имеет тип unsigned char, то на машине, использующей набор символов ISO-Latin-1, этот байт представляет точку с запятой.
Типы с плавающей точкой представляют значения с одиночной, двойной и расширенной точностью. Стандарт определяет минимальное количество значащих цифр. Большинство компиляторов обеспечивает большую точность, чем минимально определено стандартом. Как правило, тип floatпредставляется одним словом (32 бита), тип double— двумя словами (64 бита), а тип long double — тремя или четырьмя словами (96 или 128 битов). Типы floatи doubleобычно имеют примерно по 7 и 16 значащих цифр соответственно. Тип long doubleзачастую используется для адаптации чисел с плавающей запятой аппаратных средств специального назначения; его точность, вероятно, также зависит от конкретной реализации этих средств.
За исключением типа boolи расширенных символьных типов целочисленные типы могут быть знаковыми (signed) или беззнаковыми (unsigned). Знаковый тип способен представлять отрицательные и положительные числа (включая нуль); а беззнаковый тип — только положительные числа и нуль.
Типы int, short, longи long longявляются знаковыми. Соответствующий беззнаковый тип получают добавлением части unsignedк названию такого типа, например unsigned long. Тип unsigned intможет быть сокращен до unsigned.
В отличие от других целочисленных типов, существуют три разновидности базового типа char: char, signed charи unsigned char. В частности, тип charотличается от типа signed char. На три символьных типа есть только два представления: знаковый и беззнаковый. Простой тип charиспользует одно из этих представлений. Какое именно, зависит от компилятора.
В беззнаковом типе все биты представляют значение. Например, 8-битовый тип unsigned charможет содержать значения от 0 до 255 включительно.
Стандарт не определяет представление знаковых типов, но он указывает, что диапазон должен быть поровну разделен между положительными и отрицательными значениями. Следовательно, 8-битовый тип signed charгарантированно будет в состоянии содержать значения от -127 до 127; большинство современных машин использует представления, позволяющие содержать значения от -128 до 127.
Подобно языку С, язык С++ был разработан так, чтобы по необходимости программа могла обращаться непосредственно к аппаратным средствам. Поэтому арифметические типы определены так, чтобы соответствовать особенностям различных аппаратных средств. В результате количество возможных арифметических типов в языке С++ огромно. Большинство программистов, желая избежать этих сложностей, ограничивают количество фактически используемых ими типов. Ниже приведено несколько эмпирических правил, способных помочь при выборе используемого типа.
Читать дальшеИнтервал:
Закладка: