Уроки 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
short int
signed short
signed short int

scobka

Одно и тоже.
Применять лучше так:
short int имя_переменной;


Дело в том, что тип int всегда подразумевается поумолчанию. Сродни модификатору signed, поэтому если иной тип не указан, имеется ввиду int.



unsigned short
unsigned short int

scobka-s

unsigned short int имя_переменной;



int
signed
signed int

scobka

int имя_переменной;



int
unsigned
unsigned int

scobka

unsigned int имя_переменной;



long
long int
signed long
signed long int


long имя_переменной;



unsigned long
unsigned long int

scobka-s

unsigned long имя_переменной;



long long
long long int
signed long long
signed long long int


long long имя_переменной;



unsigned long long
unsigned long long int

scobka-s

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; — отличаются.

Еще больше уроков по C++ здесь.