Лекция 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 / F | float |
l / L | long 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 (точнее, ошибка линковки, если объявление есть, а определения нет).