Чтение онлайн

на главную - закладки

Жанры

Шрифт:

Первые четыре типа применяются для представления целых, последние два – для представления чисел с плавающей точкой. Переменная типа char обладает размером, естественным для хранения символа на этой машине (обычно байт), а переменная типа int обладает размерами, соответствующими целой арифметике на этой машине (обычно слово).

Диапазон целых чисел, которые можно представить типом, определяется его размерами. В C++ размеры определяются единицами размера данных типа char, поэтому char по определению обладает единичным размером.

22. Соотношение

между основными типами данных в СИ++

Соотношение между основными типами можно представить так:

1 = sizeof(char) <= sizeof(short) <=«sizeof(int)» <=«sizeof(long)» sizeof(float) <=«sizeof(double)»

В итоге предполагать что-то еще относительно основных типов неразумно. Например, то, что целое достаточно для хранения указателя, справедливо не для всех машин. В основном типе можно использовать прилагательное const. Это дает тип, который имеет те же свойства, что и первоначальный тип, за исключением того, что значение переменных типа const не может меняться после инициализации.

const float pi = 3.14; const char plus = +';

Символ, который заключен в одинарные кавычки, является символьной константой. Часто константа, которая определяется таким образом, не занимает память. Там, где необходимо, ее значение может использоваться непосредственно. Константе следует инициализироваться при описании. Для переменных инициализация не всегда обязательна, но очень рекомендуется. Оснований для применения локальной переменной без ее инициализации очень немного.

К каждой комбинации данных типов могут применяться арифметические операции: + (плюс, унарный и бинарный), – (минус, унарный и бинарный), * (умножение), / (деление).

Кроме этого применяются операции сравнения: = (равно),!= (не равно), < (меньше), > (больше), <= (меньше или равно), >= (больше или равно).

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

double d = 1; int i = 1; d = d + i; i = d + i;

Рассмотрим операции, которые создают из основных типов новые типы: * (указатель на), *const (константный указатель на), & (ссылка на), [] (вектор), (функция, возвращающая).

У всех векторов нижней границей индекса является ноль, поэтому в v десять элементов: v[0]… v[9].

В предметном указателе могут быть адреса объекта соответствующего типа:

char c;

// …

p = &c // p указывает на c

Унарное & – операция взятия адреса.

23. Операции языка СИ++

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

Необходимо учесть, что операции из таблицы 1 применяются к целым и что не существует отдельного типа данных

для логических действий.

Таблица 1

Операции, применяемые к целым операндам

Смысл операции определяется числом операндов; унарное & – операция взятия адреса, а бинарное & – операция логического И.

Смысл операции определяется также типом ее операндов: + в выражении a + b означает сложение с плавающей точкой, если тип операндов float, но целое сложение, если их тип int.

В C++ существует операция присваивания =, а не оператор при-сваивания, как в некоторых языках. То есть присваивание может употребляться в неожиданном контексте; например, x = sqrt(a = 3*x).

Выражение a = b = c значит присвоение c объекту b, а потом объекту a. Другое свойство операции присваивания – она способна совмещаться с большинством бинарных операций. К примеру, x[i + 3]* = 4 имеет значение x[i + 3] = x[i + 3]*4, за исключением того, что выражение x[i + 3] определяется только один раз. Это дает большую степень эффективности без необходимости употребления оптимизирующего компилятора. К тому же это менее длинно.

Во многих программах на C++ широко используются указатели.

Унарная операция * разыменовывает указатель, т. е. *p представляет собой объект, на который указывает p. Данная операция также именуется косвенной адресацией. Например, если имеется char* p, то *p – это символ, на который указывает p. Часто при работе с указателями применяются операция увеличения ++ и операция уменьшения —.

24. Оператор выражение. Пустой оператор

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

К примеру:

a = b*3 + c;

cout << «go go go»; lseek(fd,0,2); Простейший оператор – пустой оператор:

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

Блок представляет собой возможно пустой список операторов, находящихся в фигурных скобках:

{a = b + 2; b++;}

Блок дает возможность рассматривать несколько операторов как один. Область видимости имени, которая описана в блоке, простирается до конца блока. Имя может быть невидимым с помощью описаний такого же имени во внутренних блоках.

Программа в следующем примере производит преобразование дюймов в сантиметры и сантиметров в дюймы; предполагается, что указаны единицы измерения вводимых данных, добавляется i для дюймов и c для сантиметров:

#include main

{

const float fac = 2.54; float x, in, cm; char ch = 0;

cout << «введите длину: «; cin>> x >> ch;

if (ch == { // inch – дюймы

in = x;

cm = x*fac;

}

else if (ch == 'c') // cm – сантиметры in = x/fac; cm = x;

Поделиться:
Популярные книги

Мажор. Дилогия.

Соколов Вячеслав Иванович
Фантастика:
боевая фантастика
8.05
рейтинг книги
Мажор. Дилогия.

Космос – место что надо (Жизни и эпохи Сан Ра)

Швед Джон Ф.
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Космос – место что надо (Жизни и эпохи Сан Ра)

Константин Коровин вспоминает…

Зильберштейн Илья Самойлович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Константин Коровин вспоминает…

Иммунитет Вселенной (Путь Знахаря)

Утолин Константин Владимирович
Фантастика:
научная фантастика
5.00
рейтинг книги
Иммунитет Вселенной (Путь Знахаря)

И тогда мы скоро полетим на Марс, если только нам это будет нужно

Павлов Алексей Андреевич
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
И тогда мы скоро полетим на Марс, если только нам это будет нужно

Красная книга ВЧК. В двух томах. Том 2

Велидов А. С.
Научно-образовательная:
история
6.25
рейтинг книги
Красная книга ВЧК. В двух томах. Том 2

Танец убийц

Фагиаш Мария
Проза:
историческая проза
5.00
рейтинг книги
Танец убийц

Красные звезды. Полная трилогия

Березин Федор Дмитриевич
Красные звезды
Фантастика:
альтернативная история
5.70
рейтинг книги
Красные звезды. Полная трилогия

Старик

Иванин Александр
Эпоха мертвых
Фантастика:
боевая фантастика
постапокалипсис
7.32
рейтинг книги
Старик

Кенди

Неизвестен 3 Автор
Детские:
прочая детская литература
5.00
рейтинг книги
Кенди

Война и наказание: Как Россия уничтожала Украину

Зыгарь Михаил Викторович
Документальная литература:
прочая документальная литература
публицистика
5.00
рейтинг книги
Война и наказание: Как Россия уничтожала Украину

Стихотворения и поэмы (основное собрание)

Бродский Иосиф Александрович
Поэзия:
поэзия
5.00
рейтинг книги
Стихотворения и поэмы (основное собрание)

Рейд к звездам

Ван Вогт Альфред Элтон
Фантастика:
научная фантастика
5.00
рейтинг книги
Рейд к звездам

Акелдама - кровавое поле битвы. Книга 3. Часть 2

Вихрева Елена
3. Акелдама - кровавое поле битвы
Фантастика:
фэнтези
8.00
рейтинг книги
Акелдама - кровавое поле битвы. Книга 3. Часть 2