Лекция 1

09.09.2024 Обновлено: 09.09.2024

Лекция 1. Типы данных, идентификаторы, операторы, операторы ветвления, циклы, функции

Идентификаторы

  • Идентификаторы — это имена, используемые для обозначения переменных, типов, функций, шаблонов и т.д.
  • Должны начинаться с буквы или подчёркивания, могут содержать цифры.
  • Зарезервированные слова языка использовать нельзя.

Типы данных

  • Для определения границ типа удобно использовать numeric_limits<type>::param (заголовок <limits>). Например: std::numeric_limits<int>::max(), std::numeric_limits<int>::min().
  • Соотношение размеров целочисленных типов:
    1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
    
  • Стандарт не фиксирует конкретные размеры в байтах, только их соотношение.

Целочисленные литералы

ПрефиксСистема счисления
(нет)десятичная (dec)
0восьмеричная (oct)
0xшестнадцатеричная (hex)
0bдвоичная (bin)

Вещественные литералы

СуффиксТип
(пусто)double
f / Ffloat
l / Llong double

Также используется экспоненциальная запись: 1.5e10, 2.3E-4.

Declaration и Definition

  • Declaration (объявление) — сообщает компилятору о существовании сущности (её имени и атрибутах).
  • Definition (определение) — полностью описывает сущность, выделяет под неё память (для переменных) или задаёт реализацию (для функций).
  • Любое определение является одновременно и объявлением.

Оператор switch

  • Константы в caseтолько целочисленные (или приводимые к целочисленным: enum, char).
  • Вычисления начинаются с первой совпавшей с константой ветки.
  • Все константы должны быть разными.
  • Если совпадения не нашлось — выполняется default.
  • break вызывает выход из switch.
  • Сквозное выполнение (fall-through) — без break выполнение «провалится» в следующий case.
  • Возможен один исход для нескольких case (перечисляются подряд без break).

Функции

  • Вызов функции без определения — compile-time error (точнее, ошибка линковки, если объявление есть, а определения нет).