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

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

Жанры

Шрифт:

Первые четыре типа применяются для представления целых, последние два – для представления чисел с плавающей точкой. Переменная типа 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;

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

Он тебя не любит(?)

Тоцка Тала
Любовные романы:
современные любовные романы
7.48
рейтинг книги
Он тебя не любит(?)

Рассвет русского царства. Книга 2

Грехов Тимофей
2. Новая Русь
Фантастика:
альтернативная история
попаданцы
историческое фэнтези
5.00
рейтинг книги
Рассвет русского царства. Книга 2

Князь Андер Арес 4

Грехов Тимофей
4. Андер Арес
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
5.25
рейтинг книги
Князь Андер Арес 4

Адаптация

Кораблев Родион
1. Другая сторона
Фантастика:
фэнтези
6.33
рейтинг книги
Адаптация

Санин (сборник)

Арцыбашев Михаил Петрович
Русская классика XX века
Проза:
русская классическая проза
роман
повесть
рассказ
5.80
рейтинг книги
Санин (сборник)

Самые знаменитые произведения писателя в одном томе

Брэдбери Рэй Дуглас
Фантастика:
фантастика: прочее
4.00
рейтинг книги
Самые знаменитые произведения писателя в одном томе

Царь-Холод, или Почему вымерзают русские

Кара-Мурза Сергей Георгиевич
Научно-образовательная:
политика
5.00
рейтинг книги
Царь-Холод, или Почему вымерзают русские

Русская драматургия XVIII – XIX вв. (Сборник)

Пушкин Александр Сергеевич
Поэзия:
драматургия
6.25
рейтинг книги
Русская драматургия XVIII – XIX вв. (Сборник)

Неудержимый. Книга XIV

Боярский Андрей
14. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIV

Война. Krieg. 1941—1945. Произведения русских и немецких писателей

Быков Василий Владимирович
Проза:
военная проза
5.00
рейтинг книги
Война. Krieg. 1941—1945. Произведения русских и немецких писателей

Махабхарата: Ревизия смыслов

Лосев Петр Степанович
Анализ индуистских мифов
Религия и эзотерика:
самосовершенствование
религия
буддизм
5.00
рейтинг книги
Махабхарата: Ревизия смыслов

Сборник "Этические уравнения"

Головачев Василий Васильевич
Фантастика:
научная фантастика
4.75
рейтинг книги
Сборник Этические уравнения

Гоголь в воспоминаниях современников

Пушкин Александр Сергеевич
Документальная литература:
критика
биографии и мемуары
5.00
рейтинг книги
Гоголь в воспоминаниях современников

Против энтропии (Статьи о литературе)

Витковский Евгений
Документальная литература:
публицистика
5.00
рейтинг книги
Против энтропии (Статьи о литературе)