Уроки C++ для начинающих. Лекция 2.
Снова ничего сложного. Есть два типа модификаторов. Знаковые и Размерные
Знаковые:
1) signed — тип, к которому применён этот модификатор будет иметь знак. Т.е. тип может иметь значения как отрицательные так и положительные. (Поумолчанию этот модификатор применён ко всем типам кроме bool (к bool ничего не применяется за неимением смысла) и char).
Пример:
signed int имя_переменной;
Тоже самое, что и
int имя_переменной;
Иначе говоря signed изначально подразумевается, но просто не пишется. Если указывать его явно — ошибки не будет.
2) unsigned — тип к которому применён этот модификатор НЕ будет иметь знак. Т.е. тип может иметь значения только положительные. При необходимости его нужно указывать явно.
Пример:
unsigned int имя_переменной;
Однако весь отрицательный диапазон целевого типа добавляется к положительному, и получается, что unsigned тип может ханить значения вдвое больше чем signed версия этого же типа.
Размерные:
Размерные модификаторы применимы к целочисленному типу:
short — «короткий». Не меньше 16 бит;
long — «длинный». Не меньше 32 бит; (Первая L)
long long — ваще «длинный», мать его. Не меньше 64 бит.
До битов мы пока не дошли — поэтому лучше объяснить на примерах, закрепив материал
(расположены по возрастанию от наименьшего):
short int
signed short
signed short int
Одно и тоже.
Применять лучше так:
short int имя_переменной;
Дело в том, что тип int всегда подразумевается поумолчанию. Сродни модификатору signed, поэтому если иной тип не указан, имеется ввиду int.
unsigned short
unsigned short int
unsigned short int имя_переменной;
signed
signed int
int имя_переменной;
unsigned
unsigned int
unsigned int имя_переменной;
long int
signed long
signed long int
long имя_переменной;
unsigned long int
unsigned long имя_переменной;
long long int
signed long long
signed long long int
long long имя_переменной;
unsigned long long
unsigned long long int
unsigned long long имя_переменной;
ВНИМАНИЕ!
Из сегодня перечисленных типов, размерные модификаторы применяются помимо int только к double и вот почему:
long float это и есть double, a short double это float.
Но есть long double, и нет long long double
Просто запомните, что есть три типа переменных с плавающей точкой:
float;
double;
long double
и их беззнаковые варианты.
И последнее на сегодня. С типом bool думаю всё ясно, к нему не применяются модификаторы. А вот с типом char…
С ним мы сталкнёмся позже и разберём его, но важно помнить, что signed char; char; unsigned char; — отличаются.