Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
s__ekzamen.docx
Скачиваний:
6
Добавлен:
18.12.2018
Размер:
113.34 Кб
Скачать
  1. Стандартные типы данных. Преобразование типов в с/с++.

Базовые типы данных

  • bool (логический);

  • char (символьный);

  • wchar_t (широкий символьный);

  • int (целый);

  • float (вещественный);

  • double (вещественный с двойной точностью).

Существует четыре ключевых слова, уточняющих внутреннее представление и диапазон значений стандартных типов:

  • short (короткий);

  • long (длинный);

  • signed (знаковый);

  • unsigned (беззнаковый).

Неявные

Операции преобразования типа:

В Си используется автоматическое приведение типа при вычислениях (при вычислениях с различными типами данных):

Правила:

1)тип char приводится к short;

2)short - к int;

3)signed - к unsigned;

4)все целые типы преобразуются к long, а long - к unsigned long;

Результат операции в скобках приводится к double перед умножением.

Явное приведение типа.

Правила:

1. Целое со знаком преобразуется к более короткому целому со знаком путем усечения старших бит.

Целое со знаком преобразуется к более длинному целому со знаком путем размножения знаков.

2. При преобразовании целого со знаком к целому без знака целое со знаком преобразуется к размеру целого без знака и результат интерпретируется как целое без знака.

3. Преобразование целого со знаком к плавающему типу происходит без потери информации, за исключением случая преобразования типа long к float, тогда точность может быть частично потеряна.

4. Целое без знака преобразуется к более длинному целому со знаком путем расширения нулем.

5. Когда целое без знака преобразуется к целому со знаком того же размера, битовый шаблон не изменяется, однако значение, которое оно представляет, изменяется, если знаковый бит установлен.

6. Величина типа float преобразуется к double без изменения значений. Величины double, преобразованные к float, представляются точно, если это возможно.

7. При преобразовании величины с плавающей точкой к целым типам они сначала преобразуются к типу long, при этом дробная часть отбрасывается, а затем величины типа long преобразуются к требуемому типу. Если значение слишком велико для long, то результат будет не определён (отбрасывается младшая часть мантиссы)

  1. Управление esc – последовательность (с примерами)

Управляющая последовательность (по-другому — escape-последовательность) представляет собой определенный символ, перед которым стоит обратная косая черта (обратный слэш). При этом два эти знака считаются за один символ. Escape-последовательности необходимы для обозначения символов, не имеющих графического представления (например, \n — переход на новую строку), а также для символов, которые имеют специальное значения в символьных и строковых константах, например, апостроф. В таблице ниже приведены все допустимые значения управляющих последовательностей.

Управляющие последовательности символов

\a Звуковой сигнал (звонок)

\b Возврат на одну позицию (забой)

\f Подача страницы (для перехода к началу следующей странице)

\n Переход на новую строку

\r Возврат каретки

\t Горизонтальная табуляция

\v Вертикальная табуляция

\0 Нуль-символ

\' Апостроф (одинарная кавычка)

\" Двойная кавычка

\\ Обратная косая черта

Пример. cout << "Ура! Оператор присваивания сработал!\ n ";

3. Арифметические и логические операции в с++

Математическая операция

* Умножение

/ Деление и целочисленное деление нацело

% Деление по модулю и остаток от деления

+ Сложение

- Вычитание

Операции Описание

= = Равно

> Больше

< Меньше

>= Больше или равно

<= Меньше или равно

!= Не равно

% Взятие по модулю или остаток; возвращает остаток целочисленного деления

~ Дополнение; инвертирует биты значений

& Побитовое И

| Побитовое включающее ИЛИ

^ Побитовое исключающее ИЛИ

<< Сдвиг влево; сдвигает биты значения влево на указанное количество разрядов

>> Сдвиг вправо; сдвигает биты значения вправо на указанное количество разрядов

4. Определение констант и их характеристика (const,define,enum)

  • Таким образом, используя модификатор const можно определить неизменяемые переменные – константы.

В константе явно или не явно присутствует тип. По умолчанию константа будет принадлежать к типу наименьшего возможного размера. Однако, используя суффикс (символ после значения константы) можно явно указать тип. Если после вещественного числа в экспоненциальной форме присутствует символ F, то константа принадлежит к типу float, а если символ L – то к типу long double. Для целых чисел суффикс U обозначает unsigned, L – long.

const double pi=3.141592653589793

  • Константа может быть определена до главной функции main. В этом случае можно использовать директиву #define. Например, для определения константы p можно перед фунцией main вставить строку

#define PI 3.141592653589793

Если в тексте программы будет встречаться имя PI, оно автоматически будет заменяяться значением 3.141592653589793.

  • самый совместимый (и самый уродский в случае _одной_ константы ):

enum Constants {SIZE = 50};

Т.к. содержимое enum обявляется на уровне описания самого enum , то Constants::SIZE обязательным не является, можно (да и нужно) просто SIZE.

Минус - единственный тип констант это int (ну или как там ваш компилятор трактует enum )

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]