int是与unsigned或signed相同的类型吗?
答案 0 :(得分:15)
普通int
与signed
相同,与signed int
相同
答案 1 :(得分:12)
C ++标准3.9.1 / 2:
有四种 签名整数类型 :“signed char”,“short int”,“int”和“long int。”< ...> ;
C ++标准3.9.1 / 3:
对于每个有符号整数类型,都存在相应的(但不同的) 无符号整数类型 : “unsigned char”,“unsigned short int”,“unsigned int”和“unsigned long” int,“< ...>
因此,sizeof(int)
等于sizeof(unsigned)
。但boost::is_same< int, unsigned >::value
是假的。
答案 2 :(得分:3)
ints
已签名,longs
也是如此。
因此,int
,signed
和signed int
是相同的。
同样,long
和signed long
是相同的。
chars
没有默认值。实现可以认为它们是有符号或无符号的(许多都有一个命令行开关可供选择)。 char
,signed char
和unsigned char
被视为重载解析,模板实例和其他地方的三种不同类型。
答案 3 :(得分:2)
int
默认签名。
答案 4 :(得分:1)
signed int
与int
相同,并指定一个可以包含正值和负值的整数值。
unsigned int
只能有正值,因此最大正值远大于signed int
。