Является ли int тем же типом, что и unsigned или signed?
Является ли int таким же, как unsigned или signed?
Ответ 1
Обычная int
такая же, как signed
, такая же, как signed int
Ответ 2
С++ Standard 3.9.1/2:
Существует четыре знаковых целочисленных типа: "подписан char", "короткий int", "int" и "long int". <... >
С++ Standard 3.9.1/3:
Для каждого из подписанных целочисленных типов существует соответствующий (но другой) неподписанный целочисленный тип: "unsigned char", "unsigned short int", "unsigned int" и "unsigned long int," <... >
Итак, sizeof(int)
равно sizeof(unsigned)
. Но boost::is_same< int, unsigned >::value
неверно.
Ответ 3
ints
по умолчанию подписаны, как и longs
.
Итак, int
, signed
и signed int
- это одно и то же.
Аналогично long
и signed long
совпадают.
chars
, с другой стороны, не имеют значения по умолчанию. Реализации могут считать их подписанными или неподписанными (многие из них имеют переключатель командной строки). char
, signed char
и unsigned char
считаются тремя различными типами для разрешения перегрузки, создания шаблонов и других мест.
Ответ 4
int
по умолчанию подписаны.
Ответ 5
signed int
совпадает с int
и указывает целочисленное значение, которое может иметь как положительные, так и отрицательные значения.
unsigned int
, с другой стороны, может иметь только положительные значения, поэтому наибольшее положительное значение намного больше, чем у signed int
.