int是否与unsigned或signed相同?

时间:2010-08-05 11:30:42

标签: c++

int是与unsigned或signed相同的类型吗?

5 个答案:

答案 0 :(得分:15)

普通intsigned相同,与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也是如此。

因此,intsignedsigned int是相同的。

同样,longsigned long是相同的。

另一方面,

chars没有默认值。实现可以认为它们是有符号或无符号的(许多都有一个命令行开关可供选择)。 charsigned charunsigned char被视为重载解析,模板实例和其他地方的三种不同类型。

答案 3 :(得分:2)

int默认签名。

答案 4 :(得分:1)

signed intint相同,并指定一个可以包含正值和负值的整数值。

另一方面,

unsigned int只能有正值,因此最大正值远大于signed int